当前位置: 首页 > 知识库问答 >
问题:

撤销Keycloak访问令牌

路欣荣
2023-03-14

我使用Keycloak来保护我的react前端和Node.js后端。这些客户端使用基于角色的授权进行保护。

我尝试这个endpoint来撤消用户访问令牌。但不起作用/auth/admin/realms//users/

是否有方法在Keycloak中撤销特定用户的访问令牌?

共有1个答案

田永春
2023-03-14

我认为您只能撤消会话,但不能撤消已颁发的访问令牌。因此,唯一的解决办法就是选择一个非常短的访问令牌生命周期,并结合静默刷新,这样可用性仍然很好,并且会话撤销后的最大访问时间等于或小于令牌生命周期。

编辑:有一个关于如何处理受损令牌的官方指南。它们没有提到如何撤销一个单独的访问令牌,因此没有文档说明这样做的方法。但是,您可以通过所描述的“NOT_BEFORE”方式撤销所有已发出的访问密钥。

 类似资料:
  • 我有短过期(5分钟)的访问令牌和刷新令牌。 如何立即撤销特定用户的访问令牌? 例如,如果我想禁止某个用户?我点击了禁止按钮,现在我想立即撤销他的访问令牌。我不想等待令牌到期。 我需要以某种方式创建令牌黑名单,但如果我不知道特定用户的访问令牌,如何将其添加到黑名单? 我应该将所有 jwt 令牌存储在数据库还是 redis 中?代码示例将非常有帮助。 非常感谢。

  • 正如这里提到的http://projects.spring.io/spring-security-oauth/docs/oauth2.html,撤销是通过刷新令牌完成的。但这似乎不起作用。

  • 我试图使用从Spring应用程序中的公共客户端获取访问令牌。 谁能帮我弄清楚我做错了什么吗?

  • 我必须将一个遗留的身份验证系统移到Keycloak,并且我不能更改客户端上的实际工作流。因此,我需要用我的api(在node.js中)提供一个用户创建和登录系统,该系统反过来代表用户从Keycloak创建和获取访问令牌。 我能够创建一个用户,但我无法找到为该用户生成访问令牌的方法。我找到的唯一解决办法是创建一个用户并设置一个随机密码,然后要求授予提供用户名和密码的用户,但这意味着我必须在自己的一侧

  • 我正在使用Laravel Passport,并且在控制器中具有注销功能。见下文: 我现在试图为此编写一个单元测试,但是即使在注销和令牌被撤销后,用户仍然保持登录状态。我发现此方法照明\Auth\ResestGuard::注销不存在Laravel Passport,但即使此解决方案也不适用于我。我猜这可能是因为我正在使用Laravel 8。我的单元测试是这样的: 结果如下: 预期状态代码401,但收

  • 当我想要注销时,我调用以下代码: 怎么修?