Google在文档中指出"当用户注销时,调用CredentialsApi.disableAutoSignIn()以防止用户立即重新登录(...)"。
这是发生的情况:
- 用户仅存储了 1 个凭据。当他进入应用程序时,他会自动登录;
- 用户注销,并调用 CredentialsApi.disableAutoSignIn();
- 现在,每次用户进入应用程序时,他都会看到一个选择器,而不是自动登录,尽管选择器只有 1 个选项,用于存储的唯一凭据。
这非常非常烦人。如果用户注销,则每次都不应打扰他再次登录。即使他有 1 个以上的证书。但是,暂时,让我们关注他只有 1 个凭据的情况。
这是预期的行为吗?我很确定当我在一月份测试此功能时,它不是这样的。现在我正在将此功能投入生产,如果这是预期的行为,也许我必须在共享首选项中存储一个标志,用于检测用户何时注销。
请求凭据功能位于应用程序的主要活动中,每次我去那里时,对话框选择器都会出现以请求登录。
不幸的是,您必须在应用中维护用户状态(我们最近没有对此行为进行任何更改,一直都是这样)。
如果登录对于你的应用是可选的,下面是我们看到的一些应用实现的内容:
-
跟踪这是否是设备上的首次运行(例如,在共享首选项中),如果是,请自动触发登录并显示选取器,允许用户在禁用自动登录或他们有多个帐户时一键登录
在 后续应用启动时,您仍然可以尝试自动登录(例如,在用户在 Web 或其他设备上注册,然后打开应用后),但如果不是第一次运行,则不要解决结果(即不显示选取器,只需放弃 Intent 进行解析或保留它以备后用)
如果用户显式触发登录操作(即单击登录按钮),您可以使用该意图,或再次调用 API 来帮助他们重新登录其帐户,或在帐户之间切换
抱歉,这需要你提供一些状态;CredentialsApi.disableAutoSignIn()
设置已禁用登录状态,但不跟踪用户对应用的登录状态(这取决于应用程序开发人员的逻辑,必须由应用管理)。
希望有帮助/有意义,请随时发表评论。看看我们是否可以为此在文档中添加一些指导!