首页 > 解决方案 > 如何使用单页应用程序和 openid 连接隐式流撤销访问令牌?

问题描述

最近我用 openid connect 编写了一个身份提供程序。我已经公开了令牌和 oauth 流的端点。

我知道在 SPA 的情况下,我们无法提供刷新令牌来撤销任何一个令牌。所以我所做的是当我的访问令牌过期时,我总是调用 IDP 服务器并刷新我的令牌,但我面临的问题是身份验证没有静默放置在后台,因为有时会出现一个闪屏并且我的回调 url 调用我再次保存令牌的地方。

那么有什么方法可以在用户不知情的情况下撤销访问令牌。

一种方法是在我的令牌过期后调用身份提供者并在后台刷新我的令牌,但如果同时用户尝试使用旧的调用 api,他仍会收到 401。

标签: openid-connectimplicit-flow

解决方案


对于 SPA,最主流的解决方案是使用 oidc-client 库为您进行令牌更新 - 我想这就是您要问的吗?

最简单的撤销解决方案是使用短期令牌 - 60 分钟很常见

这取决于您的授权服务器,但一个好的起点是了解 prompt=none 参数 - 我的 SPA 撰写可能会有所帮助: https ://authguidance.com/2017/10/24/user-sessions-and-token-renewal /

一些


推荐阅读