如何为 OpenID Connect 进行会话管理



我正在尝试使用 OpenID Connect 进行身份验证,但我不确定在从 ID 令牌获取、提取和验证信息后如何进行会话管理。

到目前为止,我遵循的步骤如Google的OpenID Connect Docs中所述,但步骤除外:6。 对用户进行身份验证。

进行会话管理的最佳方法是什么?

想法:

  • 1. 将 ID 令牌或访问令牌发送到客户端(浏览器/javascript)将其存储在会话存储中,并仅通过 https 将其发送到身份验证标头中的服务器,如下所示:

    Authentication: Bearer YzNHxEdi118B.QlhOY21sdVp3.0zcHlkR1ExY

    另外,如果它无效,我应该通过刷新令牌请求一个新的?

  • 2. 在基于 JWT 的现有会话管理系统之上编写另一个会话管理系统(这不是有点不必要的开销吗>)。

如果将来需要添加更多使用其他身份验证系统(如oauth)的提供商(facebook,twitter),我不需要在现有系统之上实现另一个会话管理系统吗?

几周

前我遇到了同样的问题,所以我最终在最后实施了一个会话系统,该系统使用 openID 中的验证步骤进行身份验证。

我最终将 JWT 与刷新令牌和访问令牌一起使用。访问令牌每 5 分钟过期一次,然后必须使用刷新令牌来获取新的访问令牌。

最新更新