iOS Google静音登录提供缺少个人资料信息的{有效}令牌

时间:2017-02-12 16:13:19

标签: ios login oauth-2.0 google-signin google-identity

我已将Google SignIn SDK(v4.0.1)集成到我的iOS应用中。 正常的身份验证过程通过以下方式正常运行:

GIDSignIn.sharedInstance().signIn()

检索到的idToken有效,包括电子邮件和用户的基本信息:
GIVEN_NAME
FAMILY_NAME
图片

问题是,重新启动应用后,我会在didFinishLaunchingWithOptions上执行静默登录,如下所示:

if GIDSignIn.sharedInstance().hasAuthInKeychain() {
    GIDSignIn.sharedInstance().signInSilently()
}

正在调用委托函数sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)。身份验证似乎已成功完成。但是,检索到的idToken(来自user.authentication.idToken)缺少" profile"的信息。范围。仅提供电子邮件字段。

将此idToken发送到我们的后端服务器会导致有效登录,但缺少填充到我们的数据库中的信息。令人沮丧。

即使事先设置为true,感觉GIDSignIn.sharedInstance().signInSilently()也不尊重GIDSignIn.sharedInstance().shouldFetchBasicProfile

通过运行user.authentication.refreshTokens:handler尝试在此阶段刷新令牌,再次生成新令牌,但缺少配置文件范围。

0 个答案:

没有答案