OpenId Connect,OAuth2上建構了一個身份層,是一個基于OAuth2協定的身份認證标準協定
看IdTokenGranter#shouldSedIdToken;{
1. request grant types是oauth2協定标準的四種方式之一
2. client scope需要包含openid
3. request scope中需要包含openid,使用者請求了,才傳回
}IdTokenCreator展現了id token的建構細節。
ID Token Content1. user_id:users表的id字段
2. aud:這裡注意,跟access token裡aud的計算方法不同,這裡的值就是clientid;
3. iss:oauth token url
4. exp:此處的計算方法跟AccessToken是使用的同一個邏輯,跟refresh token不同
5. iat:now
6. auth_time:AccessToken 的auth是同一個值
7. amr
8. acr
9. azp:Authorized party,目前clientid
10. given_name:users表的given_name 字段
11. family_name:users表的family_name字段
12. previous_login_time:users表的previous_login_time 字段
13. phone_number:users表的phoneNumber字段,需要scope有profile scope;
14. user_attributes和roles,看代碼這兩個值本意是取userinfo表的info字段的json對象的user_attributes和roles屬性,但是沒取到,不知道是bug還是本意就是如此;
15. email_verified:users表的email_verified字段
16. nonce:Number once,
17. email :users表的email字段
18. cid:clientid
19. grant_type:使用者請求的grant_type;
20. zid:zone id
21. origin :user表的origin字段
22. jti
23. reg_sig:根據users取出的UaaUser對象和client密鑰對臨時生成的。