标签:php oauth-2-0 google-signin
我在我的iOS应用程序上使用Google Sign-In.直到最近我注意到应用程序不再获取用户名,一切都运行良好,只返回电子邮件地址.
我通过我发送到我的服务器的应用程序获取令牌,该应用程序通过向此端点发送请求来获取完整信息:
https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=MYTOKEN
我现在得到这样的答案:
{
"issuer": "https://accounts.google.com",
"issued_to": "o37l8g.apps.googleusercontent.com",
"audience": "o37l8g.apps.googleusercontent.com",
"user_id": "113504",
"expires_in": 814,
"issued_at": 1452991611,
"email": "myemail@gmail.com",
"email_verified": true
}
我尝试使用其他端点,例如https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=和https://www.googleapis.com/oauth2/v1/userinfo?access_token=,但都没有工作.
我也尝试过操场,但找不到使用哪个端点,我的范围定义明确,我在iOS应用程序中看到所有权限都被请求,但不知怎的,它仍然没有返回用户的名字……有什么想法吗?
解决方法:
您应该使用access_token而不是id_token,因此您仍然可以使用以下方法查询tokeninfo端点以获取您的令牌:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=
但是现在您还可以查询其他端点以访问其他信息,例如名称:
https://www.googleapis.com/plus/v1/people/me?access_token=
检查您如何使用Google SignIn iOS SDK并确保最终向服务器发送access_token而不是id_token.
Swift中的示例:
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
let token = user.authentication.accessToken // YES
let token = user.authentication.idToken // Maybe NO
...
标签:php,oauth-2-0,google-signin 来源: https://codeday.me/bug/20190519/1135891.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。