使用凭据管理器通过 Google 登录时的临时阻止

问题描述 投票:0回答:1

我正在按照官方文档中的指示使用凭据管理器测试“使用 Google 登录”流程。到目前为止,该过程按预期进行:它显示了包含可用帐户的底表,并允许我登录到所选帐户。

但是,我观察到,如果我连续 4 次关闭底部工作表,底部工作表将不再出现,并且出现以下异常:

androidx.credentials.exceptions.NoCredentialException: During begin sign in, failure response from one tap: 16: [28436] Caller has been temporarily blocked due to too many canceled sign-in prompts.

该异常似乎来自旧的“一键”流程。正如 One Tap 文档 中所述,“如果用户连续取消多个提示,One Tap 客户端将在接下来的 24 小时内不会提示用户”。

这引出了我的问题:

如果尝试登录我的应用程序的用户连续 4 次忽略凭据提示(我可以很容易地看到发生的情况),我应该做什么?告诉他们 24 小时内不能使用该应用程序似乎有点过分。有什么替代方案吗?

注意:

需要指出的是,旧版 GoogleSignInClient 没有此限制。

android google-signin android-credential-manager
1个回答
0
投票

该机制的建立是为了通过不断提示用户来阻止应用程序过于垃圾邮件(请注意,该 API 不是由用户采取显式操作触发的;它是在用户打开应用程序时由开发人员调用的;如果是由用户点击按钮驱动的,那么那就是一个不同的故事了);如果用户连续三次关闭底页,则可能表明用户不想看到它,因此我们将其禁用 24 小时。我们正在重新审视相关的一些参数,并且很快就会有一些更新,但主要思想仍然有效。对于开发人员来说,有一些方法可以解决这个问题,因为这种情况在开发过程中经常发生;如果您使用的是 Pixel 或模拟器,您可以在拨号器中输入特定代码以禁用该设备或其他设备上的该功能,清理 Play 服务缓存也能让您摆脱锁定。

要回答问题的其他部分,始终建议在登录页面上添加“使用 Google 登录”按钮,因为用户甚至可能会意外关闭底页,因此使用该按钮为用户提供了一种方法明确尝试使用其 Google 帐户登录。

© www.soinside.com 2019 - 2024. All rights reserved.