2

我正在使用 Google+ 将我的用户登录到我们的应用程序中。不过,实际的 G+ 登录发生在服务器上。我取回了一些用户数据,例如电子邮件和姓名。我正在使用它将用户凭据存储为谷歌帐户。

当我尝试保存它时,问题就出现了。在将凭据保存在“Auth.CredentialsApi.save”中的回调中,它不返回任何分辨率,也没有任何事情发生。如果我从凭据中删除 Google IdentityProvider,那么它会在没有密码的情况下保存。

有谁知道为什么在设置 IndentityProvider 时找不到解决方案?

4

1 回答 1

2

在 Play Services 8+ 中,使用 Smart Lock API 将 Google 登录保存到用户的 Google 帐户不需要任何解析(确认 UI)(即,凭据的类型设置为IdentityProviders.GOOGLE并且电子邮件地址与在设备,并且用户没有在设置中禁用保存)。请注意,使用 API 保存时,您不能在凭证对象上同时设置帐户类型和密码——如果用户有密码,只需将其存储用于身份验证。

具有此类凭据的 API 调用应自动保存并立即可用,因此只需检查此凭据在Auth.CredentialsApi.request()使用 CredentialRequest构建时可用,.setAccountTypes(IdentityProviders.GOOGLE)并且已保存的凭据显示在passwords.google.com上并具有“with Google” "代替密码。

检索此凭据时,您可以使用它来了解您有一个具有现有帐户的用户,并且他们之前使用 Google 登录过。然后,您可以为此返回用户自定义身份验证 UI,或者简单地为用户自动触发 Google 登录流程,并在应用开始使用Auth.GoogleSignInApi.silentSignIn()最新版本的 Google 登录库中的方法时为他们提供返回用户体验. 这是一个完整的代码示例

于 2016-01-04T22:07:29.870 回答