我正在尝试使用 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 分钟过期一次,然后必须使用刷新令牌来获取新的访问令牌。