为什么Google登录Android会返回" sub"用户标识符与托管域帐户的UserService.getCurrentUser()不同?

时间:2016-03-11 19:32:36

标签: android google-app-engine google-authentication

对于托管域帐户的Google帐户,https://developers.google.com/identity/sign-in/android/backend-auth返回的sub用户标识符始终与UserService.getCurrentUser().getUserId()的响应符合预期。

但是,对于托管域帐户,sub标识符与UserService.getCurrentUser().getUserId()的响应不匹配。我们如何为托管域帐户设置通用用户标识符,无论用户是使用Google登录Android登录还是通过服务器端UserService浏览器登录?

1 个答案:

答案 0 :(得分:0)

至于原因:我非常确定这种差异是Google App Engine直接使用Google自己的身份验证/用户帐户系统这一事实,而Identity Kit则是一个集成的独立项目有多个OAuth提供商。换句话说,他们将那些在某些时候只是松散整合的项目分开。

要解决此问题,我建议不要在App Engine上使用 Google的原生身份验证API,而只使用Identity Toolkit Web,这当然会使用相同的数据和架构作为Android / iOS Identity对象。像使用Identity Toolkit一样,任何其他Web应用程序都非常简单,并且可以在GAE之外移植。

如果在创建App Engine时出现了Identity Toolkit,那么它们可能会自动集成,一切都会正常工作。但我发现你不能真正混合搭配它们;你选择一个并坚持下去。