Javascript set cook ie превышен максимальный размер из-за большого токена JWT - PullRequest
1 голос
/ 12 марта 2020

Я использую токен JWT для аутентификации, и поскольку сервер не имеет состояния, клиент (приложение Javascript) использует куки для хранения токена JWT, каждый раз читает токен из куки и соответственно устанавливает заголовок авторизации при любом вызове. на сервер. Проблема, с которой я сталкиваюсь, заключается в том, что токен может стать больше 4 КБ, и это приводит к сбою в javascript части. Очевидно, Javascript имеет ограничение 4 КБ для размера повара ie. Следовательно, это вызывает проблему.

Set-Cookie header is ignored in response from url: xxxxx. Cookie length should be less than or equal to 4096 characters

Мой вопрос: что я могу сделать, чтобы устранить ограничение повара ie с точки зрения javascript? Это даже правильная вещь, чтобы установить токен JWT на повара ie? Я хотел бы, чтобы с некоторыми приложениями возникал образ с токеном JWT размером более 4 КБ. Каков был бы альтернативный (и все же безопасный) подход к обработке его без сохранения состояния и управлению ограничением javascript?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Вы можете сохранить токен в sessionStorage или localStorage и добавить токен во все запросы в заголовке Authentication. Вы можете реализовать Bearer Authentication в своем приложении.

Вы можете сохранить данные в sessionStorage или localStorage до 5 МБ. И эти методы более безопасны, чем cookie.

Сеанс хранения:

Свойство sessionStorage осуществляет доступ к объекту хранения сеанса для текущего источника. sessionStorage похож на localStorage; Разница в том, что, хотя срок действия данных в localStorage не истекает, данные в sessionStorage очищаются по окончании сеанса страницы.

  1. Сеанс страницы длится до тех пор, пока браузер открыт и сохраняется over page перезагружается и восстанавливается.

  2. Открытие страницы в новой вкладке или окне создает новый сеанс со значением контекста просмотра верхнего уровня, который отличается от того, как работают куки-файлы сеанса.

  3. Открытие нескольких вкладок / windows с одним и тем же URL-адресом создает sessionStorage для каждой вкладки / окна. Закрытие вкладки / окна завершает сеанс и очищает объекты в sessionStorage

Локальное хранилище:

Только для чтения свойство localStorage позволяет получить доступ к объекту Storage для источника документа; сохраненные данные сохраняются между сеансами браузера. localStorage похож на sessionStorage, за исключением того, что, хотя данные, хранящиеся в localStorage, не имеют срока действия, данные, хранящиеся в sessionStorage, очищаются по окончании сеанса страницы, то есть при закрытии страницы.

0 голосов
/ 12 марта 2020

Вы можете использовать как localStorage, так и sessionStorage, для ясного понимания обоих смотрите здесь ! ответить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...