Я пытаюсь использовать 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. Если это так, я мог бы повторно пройти аутентификацию, как я делаю в начале - я думал, что, возможно, это даст мне новый сеанс, что может быть причиной сбоя предыдущих обновлений.
Спасибо!