Где хранить JWT в angular - PullRequest
       41

Где хранить JWT в angular

1 голос
/ 16 апреля 2020

Я видел, как сайты, такие как твиттер, отправляли токен авторизации обратно на свой сервер в заголовке http, как рекомендованный Bearer, как рекомендуют люди, но я не могу найти, где они на самом деле хранят его в браузере. Ни в куки, ни в локальном хранилище. Может кто-нибудь объяснить мне, как они это делают, или, по крайней мере, как лучше всего следовать.

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Существуют разные методы, но в целом, если ваш JWT действует как своего рода авторизация, вы хотите держать его вне досягаемости внешних Javascript для защиты JWT.

Это можно сделать с помощью использование повара ie, который ограничен вашим доменом и httpOnly для защиты от CSRF и XSS. Эта опция имеет дополнительную ценность сохранения в сеансах до окончательного срока действия повара ie. Недостатком этого является отсутствие возможности извлекать данные, которые могут потребоваться для отображения в пользовательском интерфейсе. Этот недостаток можно устранить, если иметь конечную точку с проверкой подлинности, которая возвращает пользовательские данные для текущего сеанса с проверкой подлинности.

Другой вариант - если вам нужен доступ к некоторому содержимому jwt во внешнем интерфейсе, вы можете сохранить его. в памяти (так, чтобы он был доступен только для кода вашего приложения путем его инкапсуляции) и отправлялся вместе с заголовком в ваших аутентифицированных http-запросах. Большой недостаток в том, что jwt не будет сохраняться при перезагрузке страницы.

0 голосов
/ 16 апреля 2020

Самый популярный способ - хранить токен в локальном хранилище. Здесь вы можете найти более подробную информацию. Пожалуйста, поделитесь своим кодом и покажите нам, что вы пробовали.

...