不過這次在測試Google的OAuth時,意外的發現,在不同的 project 或 client_id 或 domain 下,取得登入 user 的 user_id 竟然都是都相同的,該說是 Google 很佛心嗎.........
如果是這樣的話是可以在不同的專案下管理或取得相同的user資料來做應用,還蠻不錯的~
Google Single sign-on (SSO) 開發文件
https://developers.google.com/identity/sign-in/web/sign-in
使用access_token取得user資訊
https://oauth2.googleapis.com/tokeninfo?access_token={access_token}
{ "issued_to": "304507854622-ismvsavqhsn20o3mjlqrabcdef.apps.googleusercontent.com", "audience": "304507854622-ismvsavqhsn20o3mjlqrabcdef.apps.googleusercontent.com", "user_id": "104327134143115766667", "scope": "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid", "expires_in": 2759, "email": "test@gmail.com", "verified_email": true, "access_type": "online" }
使用id_token取得user資訊
https://oauth2.googleapis.com/tokeninfo?id_token={id_token}
{ "iss": "accounts.google.com", "azp": "304507854622-ismvsavqhsn20o3mjlqrabcdef.apps.googleusercontent.com", "aud": "304507854622-ismvsavqhsn20o3mjlqrabcdef.apps.googleusercontent.com", "sub": "104327134143115766667", "email": "test@gmail.com", "email_verified": "true", "at_hash": "lWpP3_u1QrfRHmF82140A", "name": "Superman", "picture": "https://lh6.googleusercontent.com/photo.jpg", "given_name": "Man", "family_name": "Super", "locale": "zh-TW", "iat": "1562689809", "exp": "1562693409", "jti": "a2b26562f211c2d329d0b121254dc5205d7e252b5", "alg": "RS256", "kid": "6e5508d27965ad7907c3322a48ed763727e", "typ": "JWT" }