【问题标题】:OIDC Access Token - Where to store?OIDC 访问令牌 - 在哪里存储?
【发布时间】:2021-01-20 01:48:41
【问题描述】:

我们知道 OpenIDConnect 涉及三个令牌:

  1. 默认情况下,OIDC 中的访问令牌是一个随机的唯一字符串,不使用 JWT 编码。
  2. ID 令牌使用 JWT 编码
  3. 刷新令牌

我们通常以 httpOnly 模式将 ID 令牌放入 cookie 中。

我的问题是,访问令牌的推荐存储位置在哪里?当然,您需要将它们存储在应用程序端。

【问题讨论】:

    标签: oauth-2.0 openid-connect


    【解决方案1】:

    您可以将令牌存储在任何您喜欢的位置,但最常见的方法是:

    • 将令牌存储在 cookie 中。如果令牌很大,那么这可能是个问题,因为 cookie 可能会变得很大。
    • 将令牌存储在内存或数据库中的缓存中,并将对它们的“引用”存储在会话 cookie 中。

    ID-token 的生命周期通常很短(例如某些提供商的 5 分钟),它用于创建本地“用户”对象。

    【讨论】: