1

谷歌在文档中声明“当用户退出时,调用 CredentialsApi.disableAutoSignIn() 以防止用户立即重新登录 (...)”。

这就是发生的事情:

  1. 用户仅存储 1 个凭据。当他进入应用程序时,他会自动登录;
  2. 用户退出,调用 CredentialsApi.disableAutoSignIn();
  3. 现在,每次用户进入应用程序时,他都会看到一个选择器,而不是自动登录,尽管选择器只有一个选项,用于存储唯一的凭据。

这非常非常烦人。如果用户注销,他不应该每次都为重新登录而烦恼。即使他拥有超过 1 个证书。但是,暂时让我们关注他只有 1 个凭证的情况。

这是预期的行为吗?我很确定,当我在一月份测试此功能时,情况并非如此。现在我将此功能投入生产,如果这是预期的行为,也许我必须在共享首选项中存储一个标志,以检测用户何时注销。

请求凭证功能在应用程序的主要活动中,每次我去那里时,都会出现对话框选择器来请求登录。

4

1 回答 1

0

不幸的是,您必须在您的应用程序中维护用户状态(我们最近没有对此行为进行任何更改,一直都是这样)。

如果您的应用可以选择登录,以下是我们看到的一些应用实现的:

  • 跟踪这是否是设备上的第一次运行(例如,在共享首选项中),如果是,则自动触发登录并显示选择器,如果禁用自动登录,则允许用户一键登录或他们有多个帐户

  • 在后续应用启动时,您仍然可以尝试自动登录(例如在用户在网络或其他设备上注册然后打开应用后),但如果不是第一次运行,则不要解决结果(即不显示选择器,只需丢弃 Intent 进行解析或稍后保留)

  • 如果用户显式触发登录操作(即点击登录按钮),您可以使用意图,或再次调用 API 帮助他们重新登录帐户,或在帐户之间切换

抱歉,这需要你有一点状态;设置CredentialsApi.disableAutoSignIn()登录禁用状态,但不跟踪用户对应用的登录状态(这取决于应用开发者的逻辑,必须由应用管理)。

希望有帮助/有意义,请随时发表评论。看看我们是否可以为此向文档添加一些指导!

于 2016-05-22T06:16:39.487 回答