Безопасен ли магазин JWT в Треб. Сессия? - PullRequest
0 голосов
/ 03 августа 2020

У меня вопрос по поводу MERN Stack (Mysql, Express, React, Node). Я запутался в хранении токена Jwt (в файлах cookie, Localstorage или как сеанс в запросе). Я спрашиваю: Безопасно ли хранить сеанс JWT по запросу? Может кто-нибудь объяснить, как хранить токен в одностраничном приложении? В любом случае спасибо ...

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Безопасно хранить JWT cook ie на клиенте, и даже больше в наши дни это необходимо для масштабируемости.

Что следует использовать?

  • Session - Это "старый" способ работы, который больше не используется. Сеанс сохраняет состояние на сервере API, и это плохо для масштабирования.
  • Localstorage - хороший выбор для приложений mobile и web . Идея здесь в том, что вы, как разработчик клиента, несете ответственность за отслеживание JWT (сохраняйте его при входе в систему, удаляйте его при выходе)
  • JWT-Cookie - лучший вариант ТОЛЬКО для веб-приложений. Это та же идея, что и Localstorage, но теперь сервер отвечает за установку и удаление JWT с клиента с помощью заголовка Set-Cookie.

Примечание: вы можете реализовать как Localstorage, так и JWT-Cookie бок о бок.

1 голос
/ 03 августа 2020

При успешном входе в систему мы получаем токен доступа. В данном случае это токен JWT. Когда мы получим это, нам нужно где-то сохранить его, чтобы использовать для будущего использования пользователем. Обычно мы храним это в LocalStorage. Дополнительную информацию о LocalStorage можно найти здесь . Мы также можем использовать SessioStorage, Cookies. Но файлы cookie могут содержать только 4 КБ данных, а SessionStorage будет go удален, когда браузер будет закрыт. Это причина для меня go с LocalStorage. Но вы можете выбрать его в зависимости от требований вашего приложения.

При отправке запроса с токеном я использую заголовок авторизации.

...