Жетоны Keycloak иногда не определены - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь использовать Keycloak в качестве службы аутентификации и использую стек TypeScript / Express в качестве бэкэнда. Я использую пакет keycloak-admin, который требует от меня время от времени обновлять sh токенов. У меня setInterval запускается каждые 30 секунд, аналогично тому, что они рекомендуют, но я нажимаю конечную точку REST /realms/{realm}/protocol/openid-connect/token и вручную обмениваюсь токенами доступа и обновления sh.

Проблема даже в том, что эти обновленные токены приведут к сбою с 401 по запросу при попытке использовать адаптер Keycloak, по-видимому, случайным образом. Обычно это происходит после того, как служба работает в течение длительного периода времени. Когда это происходит, любой запрос от адаптера keycloak-admin (например, при использовании kcAdminClient.users.findOne()) имеет Bearer undefined в качестве заголовка аутентификации. Это специфично для меня, поскольку я обновляю токены через REST, используя Ax ios, что должно вызывать ошибку, если запрос не возвращает 2xx. Я исправляю это просто путем перезапуска моей службы REST.

Есть ли причина, по которой этот REST-маршрут администратора должен возвращать HTTP-код без ошибок, но не возвращать новую информацию?

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

Спасибо!

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