为什么GoogleAuthUtil.getToken()方法会生成两种类型的令牌?

时间:2015-05-27 18:13:23

标签: android oauth-2.0 openid openid-connect google-plus-signin

我正在整合google登录我的Android应用程序。我正在使用新提到的Google+登录Api并且能够获取我的app的用户名,电子邮件,个人资料照片。但是当我用不同的参数调用GoogleAuthUtil.getToken()时我得到两种令牌。一种是base64编码的idToken(我认为它是JWT或Json Web令牌)但另一种生成令牌不同和更短的令牌。为什么会发生这种情况?如果我使用

token = GoogleAuthUtil.getToken(
                        LoginActivity.this,
                        mEmail,
                        "oauth2:https://www.googleapis.com/auth/urlshortener https://www.googleapis.com/auth/userinfo.email ");

并返回一个像这样的id标记(已编辑的值)

eyJhbGciwwHHwSUzsss1gFFggdNiIsImtpZCI6ImU5GGGTtjViNTA4ZjI2MjI2ZWVmZDJlNTgwMmQ2MzBlYmU0MGGGZTQ4NGEifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuss9tIiwic3ViIjoiMTEyMzA2OTkwMjA1NDYyMjkzMDExIiwiYXpwIjoiNDU5NTM4MTI1OTIzLXUzNGZ0aTZyOWJnNGM4MDFjZW82MzVhNWVoNTZzLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiggdWWaWwiOiJsZWppbmtyQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhsGTdWQiOiI0NTk1MzgxMjU5MjMtNDZlN3Q3YzNhbmQ3M2VqcThyZWZvZTFzYTIzdm9wOHEuYXBwcy5nb29nbGV1c2VyY29GGTrVudC5jb20iLCJpYXQiOjE0MzI2OTc4MTMsImV4cCI6MTQzMjcwMTQxM30.C3gG3ldJ1qaqBSZF8u88UH0ZVDfLL6mRjz2H0IqenJkjz86XUc0bc3m59UduWPR7tNDfzOP2oTcf3-iinyREd4dek9iXeJegrYgJKkKF-UvC2Dsl00GGIeHHhwbgSHb3W2Ev-L-p8_XHMRHPorWb8uunwHddxxZ1ZVurNS1HHFshuJT

但如果我使用以下代码

SELECT C.Name, C.Email, C.PrimaryPhone, C.Name, CO.Email, C.Description. CO.Description, C.CompanyName
FROM Company AS CO
LEFT JOIN Contact AS C ON CO.CompanyId=C.CompanyId
WHERE C.Name LIKE '%x%' OR CO.Name LIKE '%x%'

我得到一个像这样的令牌 ya29.gAFseYYXxt2gh3ssEWSHhgdhgDL9EQR4prBQpNRjigRNcgQMPHHFRWiaWpwdshVclC_ZFDVtNodhggHJ8J

为什么会这样?我的后端服务器(其他人正在开发)只采用最后一种类型的令牌(它很短)。这与OpenID 2.0弃用和迁移到OpenID Connect有关吗?问题是我的应用程序再次询问用户是否允许我选择生成第二种类型令牌!伙计们请对此有清楚的认识。

0 个答案:

没有答案