由于本地存储和会话存储都可以通过JavaScript访问,因此最好不要将身份验证JWT存储在它们中的任何一个中,以避免XSS攻击。
由于OpenID connect 2.0是在单独的域上执行的,我们如何设置包含经过身份验证的JWT的服务器端仅HTTP cookie?
我的猜测是:
我的问题是:以上是否是正确处理OpenIDConnect 2.0流的正确过程?
[我假设您说的是“身份验证JWT”,是指“ Id令牌”,因为这是OpenID connect所需的唯一JWT。
OpenID连接支持的所有流在the spec中列出。如果要登录到授权服务器并验证到单独的站点,那么您将经常使用“授权代码”流,该流根本不会将ID令牌发送到浏览器。 OpenID connect还定义了其他流程,但是没有一个提到将ID令牌存储在cookie中-客户端(您要验证的站点)和浏览器之间如何维护会话是与验证用户不同的问题。
我在授权码流中找到了答案:https://connect2id.com/learn/openid-connect
步骤列表
OAuth 2.0和OIDC授权代码流