Обновление вызова токена, когда токен доступа истек с использованием токена JWT - PullRequest
1 голос
/ 12 июня 2019

Я создаю два веб-приложения в ядре .net, объектный подход db first подход и другое веб-приложение в ядре .net только для клиентской стороны, используя страницу бритвы.Моя проблема в том, что я сохраняю свой метод API в качестве авторизации и генерирую токен доступа и обновляю токен, как только пользователь войдет в систему.Срок действия моего токена доступа истек через 20 минут, после чего мне приходится молча вызывать обновление токена. Я не могу найти, где вызвать токен обновления, так что всякий раз, когда срок действия моего токена доступа истекает, он вызывает токен обновления.

В блоке ошибок ajaxя вызываю токен обновления, один из которых будет генерировать новый токен, затем после 5 секундного сна снова вызываю основной метод.Если код состояния равен 200, тогда возвращайте данные. Но этот метод каждый раз возвращает код состояния 401.

  error: function (request, textStatus, errorThrown) {
               ErrorHandleFunction(request, textStatus, errorThrown);
               sleep(5000).then(() => {
                    Myfunction();
                });

При ошибке, когда он пойдет, затем вызовите токен обновления, после этого он перейдет к моей функции, так чтоснова срок действия токена доступа должен быть установлен равным 20 минутам. В настоящее время он зацикливается при вызове обновления токена.

1 Ответ

0 голосов
/ 13 июня 2019

Вам необходимо реализовать логику, чтобы самостоятельно генерировать токены обновления в WebApi. Когда вы делаете запрос в WebApi, вы должны получить 401 Unauthorized. Может быть, запись заголовка, чтобы объяснить, что токен истек? Таким образом, вы узнаете на внешнем интерфейсе, что вам нужно вызвать конечную точку RefreshToken с токеном с истекшим сроком, чтобы получить токен обновления.

Вот пример: https://www.blinkingcaret.com/2018/05/30/refresh-tokens-in-asp-net-core-web-api/

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