Задать вопрос
GmGameFilm
@GmGameFilm
Novice Java-programmer

Где лучше хранить JWT в таком случае?

Nest backend выпускает jwt token, который затем используется в fetch запросах на стороне nextjs сервера (не клиента) в bearer header. Причина по которой мне нужна аутентификация от nest а не от nextjs (nextauth) заключается в том, что мне нужен socket io сервер, причем с авторизацией. К сожалению, чтобы установить подключение к socket io серверу, мне нужно получить токен на клиенте. Лучшая практика хранения токена в браузере предполагает хранить http only secure cookie, доступ к которой на клиенте невозможно получить. Тогда у меня вопрос: а как построить систему так, чтобы получить желаемый результат?

Мои попытки полазить в open source nextauth привели к следующему:
nextauth предоставляет useSession хук на клиенте, который использует React.Context, который в свою очередь получает данные о сессии через fetch запрос на api point nextjs сервера. Я не уверен, хорошая ли это идея, например, сделать свой api point на nest который будет предоставлять jwt?

Так же я нашел такой способ:
прочитать куку на сервере nextjs, и пробросить ее через пропсы в клиентский компонент. Я тоже не уверен в этом способе, ведь получается теперь токен может прочитать внешний скрипт и тогда нет толку хранить токен в http only cookie?

Может быть вы знаете другие способы решения такой проблемы в проде?
  • Вопрос задан
  • 1588 просмотров
Подписаться 5 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы