Предоставьте новый токен на основе токена refre sh без обращения к клиенту - JWT - Asp. net core - PullRequest
0 голосов
/ 17 февраля 2020

Я нашел много ссылок, но не нашел решения для своей проблемы.

Я пытаюсь реализовать токен jwt refre sh в asp. net ядре.

Для хранения маркера refre sh я создал таблицу. Исходя из предложения jwt, для приложения SPA мы не должны предоставлять клиенту токен refre sh. https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/

Итак, я запланировал:

  • При входе в систему создайте токен доступа и поделитесь с клиентом
  • Создать refre sh токен для токена доступа и сохранения его в базе данных и сохранения его только по протоколу HTTP cook ie
  • Когда пользователь получает доступ к авторизованному контроллеру и действию, если срок действия токена доступа истекает, я хочу генерировать новый токен на основе refre sh токена.

Но, во многих местах, как я обнаружил, пользователь отправит запрос. Если он не авторизован, пользователь запросит новый токен доступа с сохраненным токеном refre sh (локальное хранилище или что-то еще) и снова вызовет действительный запрос API.

Я не хочу этого, как упоминалось в последнем абзаце (верно?).

Когда пользователь отправляет запрос, если он недействителен, я хочу проверить токен в самой стороне сервера и необходимо предоставить новый токен доступа и продолжить последний вызов API.

Есть ли какое-либо решение для этой реализации, например, интерпретация авторизации и валидации?

1 Ответ

0 голосов
/ 18 февраля 2020

На мой взгляд, опасно использовать / держать refre sh токен в приложениях SPA. Токен Refre sh - это мощный инструмент, который почти так же силен, как и сам пароль. Храните его в файлах cookie или localStorage, и оба эти варианта по своей природе небезопасны, поскольку они уязвимы для CSRF или XSS-атак на клиентское приложение. Поэтому я думаю, что лучше просто сохранить токен доступа и выполнить молчаливый вход, чтобы возобновить его по истечении срока действия токена доступа.

Так что я не думаю, что будет хорошей идеей вернуть и использовать refre sh токен, если клиентское приложение является приложением SPA даже с использованием Code + PKCE.

...