Обрабатывать токен JWT и состояние входа в систему - PullRequest
0 голосов
/ 10 мая 2019

У меня возникли некоторые проблемы с логикой обработки моего входа в систему единого входа с помощью cas и состоянием jwt.

Перед началом: пользователю, чтобы авторизоваться в моем приложении, необходимо посетить cas, в том числе в качестве параметра в URLимя приложения, которому необходимо получить доступ, например: myapp.com

После входа в систему пользователь перенаправляется с 302 на мое приложение с JWT, добавленным в URL: myapp.com/?service=JWT-blablabla

Вот как я представлял поток приложения, чтобы проверить, вошел ли пользователь в систему или нет, или он идет с jwt

enter image description here

У меня есть некоторыевопрос:

  1. Если пользователь пришел с действительным приложенным jwt, но у него все еще есть в локальном хранилище действительный JWT, который имеет приоритет у JWT тот, который имеет самое свежее время истечения, или старый получаетавтоматически аннулировать через cas?Помните, что jwt должен быть подтвержден моим бэкэндом

  2. В моих http-вызовах я добавляю свой носитель jwt, проблема в том, что я кеширую свои http-вызовы, если истекает jwt и пользовательне делать http звонки, как я могу справиться с этим?Мне нужно выйти из системы пользователя, которого я не могу дождаться, чтобы сделать http-вызов и сказать ему, что он недействителен, или я должен?

1 Ответ

0 голосов
/ 10 мая 2019

Я недавно внедрил SSO, вот несколько ответов на ваши вопросы:

  1. Новейший токен должен иметь приоритет, но почему это даже происходит, то есть, почему в URL появляется новый токен jwt? Если пользователь переходит на страницу входа в систему, когда у него все еще есть действительный токен jwt в локальном хранилище, он должен быть перенаправлен на вашу домашнюю страницу (или куда-то), ps. Вы не можете сделать недействительным токен JWT.

  2. По истечении срока действия токена ваш сервер должен вернуть ответ 401; это то, что вы должны следить. Проверьте, есть ли у пользователя токен jwt в локальном хранилище, и если они также получают 401, то вы знаете, что токен истек, поэтому позвоните в ваш API для обновления токена, не перенаправляя пользователя на страницу входа.

Надеюсь, это поможет.

...