Keycloak - 令牌过期后在 Ajax 调用中获取 401

Posted

技术标签:

【中文标题】Keycloak - 令牌过期后在 Ajax 调用中获取 401【英文标题】:Keycloak - Getting 401 in Ajax calls after token expired 【发布时间】:2018-10-25 09:30:58 【问题描述】:

我正在使用 keycloak 3.4.3 服务器和 3.4.3 springboot 适配器。使用以下 json 配置通过 Java 适配器完成登录:


  "realm": "real name",
  "auth-server-url": "http://172.21.34.65/auth",
  "ssl-required": "external",
  "resource": "appName",
  "public-client": true,
  "use-resource-role-mappings": true

使用非 ajax 调用刷新令牌,但是当请求包含标头 X-Requested-With: XMLHttpRequest 时,令牌不会刷新。我的配置有问题还是这是正常行为,我需要在 ajax 调用之前使用 JS 适配器刷新令牌?

【问题讨论】:

这方面有什么进展吗?我面临同样的情况 【参考方案1】:

对我来说,一个丑陋的解决方案是嵌入一个不可见的自动重新加载 iframe,它会导致令牌刷新。但这是另一个问题的根源:有时登录 keycloak 后的重定向会导致 iframe url 而不是所需的。 我还没有找到令人满意的解决方案。

【讨论】:

以上是关于Keycloak - 令牌过期后在 Ajax 调用中获取 401的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak :使用带有永不过期令牌的服务帐户

Keycloak 返回已经过期的令牌

在 Spring Boot 和 Spring Security 中,不活动、过期的令牌会导致带有 Keycloak 的 IllegalStateException

如何设置访问令牌在几秒钟内过期

如何在 Keycloak 中指定刷新令牌的生命周期

Keycloak:访问令牌验证端点