我阅读了一些有关 OAuth 和 OIDC 协议的内容。还有一个概念我觉得有点难以理解:ID 令牌是由应用程序客户端读取的,而访问令牌是由 API 读取的。
但它并不止于此,我还读过诸如 ID token 用于前端和后端访问之类的内容。
对我来说这很令人困惑,例如:我使用 .net、前端和后端创建了一个 Web 应用程序。当我登录时,客户端同时拥有 ID 和访问令牌。
此外,访问令牌会发送到客户端/前端看不到的服务器,以防止黑客窃取令牌。
对于某些人来说这似乎是显而易见的,但我不能很好地理解它,因为两个令牌都首先通过客户端。 (我只是在谈论纯粹的基础知识,而不是分割代币或幻象代币或类似的东西)
有人可以告诉我这件事吗?
ID 令牌的主要目的是允许客户端创建基于用户 cookie 的会话。此后,ID 令牌就没有任何用途;令牌的生命周期通常很短,例如在某些设置中为 5 分钟。 ID 令牌通常描述谁经过身份验证以及有关用户的声明/事实。理论上,客户端在创建本地会话后可以丢弃 ID 令牌。
客户端通常还会收到一个可用于访问后端 API 的访问令牌。客户端还可以请求刷新令牌,以便在访问令牌过期时自动更新访问令牌。