openid-connect - 如何使用单页应用程序和 openid 连接隐式流撤销访问令牌?
问题描述
最近我用 openid connect 编写了一个身份提供程序。我已经公开了令牌和 oauth 流的端点。
我知道在 SPA 的情况下,我们无法提供刷新令牌来撤销任何一个令牌。所以我所做的是当我的访问令牌过期时,我总是调用 IDP 服务器并刷新我的令牌,但我面临的问题是身份验证没有静默放置在后台,因为有时会出现一个闪屏并且我的回调 url 调用我再次保存令牌的地方。
那么有什么方法可以在用户不知情的情况下撤销访问令牌。
一种方法是在我的令牌过期后调用身份提供者并在后台刷新我的令牌,但如果同时用户尝试使用旧的调用 api,他仍会收到 401。
解决方案
对于 SPA,最主流的解决方案是使用 oidc-client 库为您进行令牌更新 - 我想这就是您要问的吗?
最简单的撤销解决方案是使用短期令牌 - 60 分钟很常见
这取决于您的授权服务器,但一个好的起点是了解 prompt=none 参数 - 我的 SPA 撰写可能会有所帮助: https ://authguidance.com/2017/10/24/user-sessions-and-token-renewal /
一些
推荐阅读
- azure - 插入新行,继续现有行集 row_number 计数
- c++ - 你如何在 C++ 中制作这个乘法表?
- php - 浏览 JSON 并填充 PHP 变量
- c# - 使用 HtmlAgilityPack.HtmlDocument 时如何限制 XML 永恒实体引用
- ios - iOS Xcode 10 的 Flutter 构建失败
- javascript - 为什么使用模板字符串时对象解构赋值会抛出错误?
- multithreading - spring 控制器中的 Thread.sleep
- postgresql - 如何使用 Postgis 配置 PostgreSQL 以计算距离
- python - 说 X 必须是对数函数中的值?
- ios - iOS Validate 存档因 CFBundleIdentifier Collision & Invalid Bundle 而失败