首页 > 解决方案 > OIDC 是否明确处理多个设备的刷新令牌交换?

问题描述

这个问题的灵感来自这个答案和问题

我还使用该方法来处理用户可以登录和退出多个设备的情况,方法是为设备 ID 存储每个设备的刷新令牌。我假设应该可以进行各种额外的检查来刷新令牌交换:检查网络应用程序的 IP、检查移动应用程序的设备 ID、限制等。

我原以为 OIDC 以某种方式迎合了单个用户围绕多个设备的流程,但是尝试研究规范后我不能说我看到了。基本上,我的问题是,OIDC 是隐式还是显式地解决了这些问题?我读对了吗,没有对此的支持,并且有必要使用自定义的非 OIDC 方法来处理它?

标签: openid-connect

解决方案


在 OpenID 连接中,每个设备/应用程序都是它自己的客户端。那么客户端如何知道用户何时退出呢?您可以通过多种方式做到这一点。

  1. 您可以拥有较短的访问令牌生命周期,例如几分钟,并且如果用户已注销,您将不会获得任何新的访问令牌。2 API 可以使用接收到的访问令牌手动调用令牌自省端点并获取用户的当前状态(活动标志)。
  2. 您的客户端还可以向身份提供者查询用户状态。
  3. 在浏览器中使用 iframe 定期向提供者查询用户状态。

所以,你在这里有很多选择。


推荐阅读