进行跨平台身份验证时,您可以使用GoogleApiClient从Android应用程序获取ID令牌,并将其提供给后端服务器。然后,服务器将首先使用以下url验证令牌:
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123
如果令牌已正确签名,并且iss和exp声明具有预期值,则您将获得HTTP 200响应,其中正文包含JSON格式的ID令牌声明。下面是一个示例响应:
{
"iss": "https://accounts.google.com",
"sub": "110169484474386276334",
"azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
"email": "billd1600@gmail.com",
"at_hash": "X_B3Z3Fi4udZ2mf75RWo3w",
"email_verified": "true",
"aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
"iat": "1433978353",
"exp": "1433981953"
}
除了电子邮件,所有这些字段意味着什么?
声明包含一组名称/值对
- iss:令牌的颁发者
- sub:代币的主题。用户的标识符,在所有谷歌帐户中是唯一的,永远不会重复使用
- azp:授权演示者的client_id
- at_hash:访问令牌哈希。提供访问令牌与标识令牌绑定的验证
- email_verified:如果用户的电子邮件地址已验证,则为True;否则为false
- aud:标识此ID令牌的目标受众。它必须是应用程序的OAuth 2.0客户端ID之一
- iat:ID令牌发出的时间,以Unix时间(整数秒)表示
- exp:ID令牌过期的时间,以Unix时间(整数秒)表示
请参阅:https://developers.google.com/identity/protocols/OpenIDConnect了解更多详细信息。