Стандартным вариантом для SPA является использование фреймов для автоматического обновления токенов и вообще не использовать refre sh токенов.
Моя запись на Хранение токенов пользовательского интерфейса также может представлять интерес - поскольку решение представляет собой компромисс между безопасностью и удобством использования.
Самый безопасный вариант - хранить токены в памяти браузера - но затем обновление страницы означает, что пользователь перенаправлен войти снова. Поэтому обычно используется HTML5 хранилище сеансов для краткосрочных токенов доступа.
My Cloud SPA использует AWS Cognito (потому что это дешево), который не поддерживает стандарты .
Вместо этого он выдает в SPA SPA токен refre sh. Мое решение использует промежуточный принцип хранения токена доступа в HTML5 хранилище сеанса и токена refre sh в памяти.
Доступны 2 варианта здесь :
- Okta использует iframes
- Cognito использует refre sh tokens
Возможно, это станет проще, и я думаю, что все согласны с тем, что нынешние руководящие указания на основе стандартов неоднозначны.
По состоянию на начало 2020 года решение iframe и хранилище на основе памяти или сеансов является наиболее стандартным - как в этой статье автора самой широко используемой библиотеки безопасности SPA.