¶ 什么是 ID Token
更新时间: 2021-08-27 05:55:26
在 OIDC 协议中,你会遇到三种 Token: id_token, access_token 和 refresh_token。本文会介绍什么是 ID Token,你也可以分别阅读:
OIDC (OpenID Connect) 协议 (opens new window)对 OAuth 2.0 协议 (opens new window) 最主要的一个扩展就是 ID Token 数据结构。ID Token 相当于用户的身份凭证,开发者的前端访问后端接口时可以携带 ID Token,开发者服务器可以校验用户的 ID Token 以确定用户身份,验证通过后返回相关资源。
ID Token 本质上是一个 JWT Token,包含了该用户身份信息相关的 key/value 键值对,例如:
{
"iss": "https://server.example.com",
"sub": "24400320", // subject 的缩写,为用户 ID
"aud": "s6BhdRkqt3",
"nonce": "n-0S6_WzA2Mj",
"exp": 1311281970,
"iat": 1311280970,
"auth_time": 1311280969,
"acr": "urn:mace:incommon:iap:silver"
}
ID Token 本质上是一个 JWT Token 意味着:
- 用户的身份信息直接被编码进了
id_token,你不需要额外请求其他的资源来获取用户信息; id_token可以验证其没有被篡改过,详情请见如何验证 ID Token。
¶ ID Token 完整字段含义
| 字段名 | 翻译 |
|---|---|
| sub | subject 的缩写,唯一标识,一般为用户 ID |
| name | 姓名 |
| given_name | 名字 |
| family_name | 姓氏 |
| middle_name | 中间名 |
| nickname | 昵称 |
| preferred_username | 希望被称呼的名字 |
| profile | 基础资料 |
| picture | 头像 |
| website | 网站链接 |
| 电子邮箱 | |
| email_verified | 邮箱是否被认证 |
| gender | 性别 |
| birthdate | 生日 |
| zoneinfo | 时区 |
| locale | 区域 |
| phone_number | 手机号 |
| phone_number_verified | 认证手机号 |
| address | 地址 |
| formatted | 详细地址 |
| street_address | 街道地址 |
| locality | 城市 |
| region | 省 |
| postal_code | 邮编 |
| country | 国家 |
| updated_at | 信息更新时间 |
本文是否有解决您的问题?
如果遇到其他问题,你可以在 authing-chat/community 联系我们。