Deb*_*nha 3 oauth google-oauth openid-connect
我在OAuth交换结束时获得的id_token具有以下内容:
"id_token": {
"aud":"xxx.apps.googleusercontent.com",
"email_verified":true,
"iss":"accounts.google.com",
"email":"xxx@gmail.com",
"iat":1234,
"exp":1234,
"azp":"xxx.apps.googleusercontent.com",
"at_hash":"xxxy",
"sub":"1243"
}
Run Code Online (Sandbox Code Playgroud)
我想知道这些代表什么?更重要的是,我可以将这些字段中的哪一个用作主键(id)?
Google坚持使用OpenID Connect标准来定义id_token
.所以你可以在这里找到该规范中的含义:http://openid.net/specs/openid-connect-core-1_0.html#IDToken
需要.
响应发布者的颁发者标识符.
iss值是使用https方案的区分大小写的URL,该方案包含方案,主机和可选的端口号和路径组件,没有查询或片段组件.sub REQUIRED.
主题标识符.
最终用户的发行者中的本地唯一且永不重新分配的标识符,其旨在由客户端使用,例如24400320或AItOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4.它的长度不得超过255个ASCII字符.子值是区分大小写的字符串.需要的.
此ID令牌所针对的受众.
它必须包含依赖方的OAuth 2.0 client_id作为受众值.它还可以包含其他受众的标识符.在一般情况下,aud值是一个区分大小写的字符串数组.在存在一个受众的常见特殊情况下,aud值可以是单个区分大小写的字符串.exp必需的.不得接受ID令牌或其后的过期时间.
处理此参数要求当前日期/时间必须在值中列出的到期日期/时间之前.实施者可以提供一些小的余地,通常不超过几分钟,以解决时钟偏差.它的值是一个JSON数字,表示1970-01-01T0:0:0Z的秒数,以UTC为单位,直到日期/时间为止.有关一般日期/时间和特别是UTC的详细信息,请参阅RFC 3339 [RFC3339].需要的东西.JWT颁发的时间.它的值是一个JSON数字,表示1970-01-01T0:0:0Z的秒数,以UTC为单位,直到日期/时间为止.需要的东西.
JWT颁发的时间.
它的值是一个JSON数字,表示1970-01-01T0:0:0Z的秒数,以UTC为单位,直到日期/时间为止.azp可选.
授权方 - 签发ID令牌的一方.
如果存在,它必须包含该方的OAuth 2.0客户端ID.仅当ID令牌具有单个受众值并且受众与授权方不同时才需要此声明.即使授权方与唯一受众相同,也可以包含它.azp值是包含StringOrURI值的区分大小写的字符串.at_hash可选.
访问令牌哈希值.
它的值是access_token值的ASCII表示的八位字节的最左半部分的base64url编码,其中使用的散列算法是ID令牌的JOSE标题的alg Header参数中使用的散列算法.例如,如果alg是RS256,则使用SHA-256对access_token值进行散列,然后取最左边的128位并对其进行base64url编码.at_hash值是区分大小写的字符串.
此外email
,email_verified
是标准化的声明,请访问http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims:
电子邮件字符串
最终用户首选的电子邮件地址.
它的值必须符合RFC 5322 [RFC5322] addr-spec语法.RP必须不依赖于该值是唯一的,如5.7节所述.email_verified boolean
如果最终用户的电子邮件地址已经过验证,则为真; 否则是假的.
当此声明值为true时,这意味着OP采取了肯定步骤,以确保在执行验证时此最终用户控制此电子邮件地址.验证电子邮件地址的方式是特定于上下文的,并且取决于各方运营的信任框架或合同协议.
因此,您会注意到它sub
是主键,每个用户在一段时间内是唯一的,至少在提供者的范围内.电子邮件不是,因为它可能会在某个时候重新分配.
归档时间: |
|
查看次数: |
1189 次 |
最近记录: |