Ошибка JwtReadError (состояние 401) при повторной попытке проверки подлинности OAuth

#oauth #banno-digital-toolkit

Вопрос:

Я нахожусь в процессе создания плагина для Banno Mobile и Онлайн. Следуя документации, предоставленной цифровым инструментарием Jack Henry для аутентификации с использованием архитектуры OAuth, я смог успешно завершить процесс аутентификации и получить маркер доступа и информацию о профиле пользователя.

По прошествии некоторого времени (в моем тестировании оно составило около 10 минут), если я попытаюсь снова запустить поток OAuth, я получу ответ с кодом состояния HTTP 401 от первоначального перенаправления на URL /a/consumer/api/v0/oidc. Я буду продолжать получать ответ 401, используя поток OAuth, пока вручную не перейду на онлайн-сайт Banno и не войду в систему вручную.

Для моей цели вариантом использования был бы пользователь, который простаивает в полноэкранном режиме плагина. Я хотел бы повторно аутентифицировать пользователя, но попытка сделать это путем инициирования потока OAuth приводит к вышеуказанному сбою, если прошло определенное время. Если я попытаюсь инициировать поток OAuth в течение 10 минут с момента первоначальной аутентификации, он будет работать так, как ожидалось.

Ответ №1:

В Access Token настоящее время срок службы составляет 10 минут с момента выдачи этого конкретного токена, что похоже на то, что вы видите. См.Раздел Маркеры доступа для справки.

Одним из способов обработки истечения срока действия маркера доступа является запрос a Refresh Token во время первоначального потока аутентификации. Токен обновления можно обменять на новый токен доступа. См.раздел Токены обновления и OpenID Connect и OAuth 2.0 для справки.

В этом случае вы можете запросить маркер обновления во время начального потока проверки подлинности, включив область OAuth https://api.banno.com/consumer/auth/offline_access в запрос проверки подлинности.

Токен обновления можно обменять на новый токен доступа с помощью POST ​/oidc​/token конечной точки. Дополнительные сведения см. в справочнике по API.