测试 Smart Lock for Passwords 应用集成

Testing Smart Lock for Passwords app integration

我已经在我的应用程序中实现了 Smart Lock for Passwords。我应该测试哪些常见场景和用户体验流程?

这是在应用程序中测试 Smart Lock for Passwords 功能的指南。如果您有网站,associate your app and site to test those cases. Also check out the developer integration guide.

检查为 passwords.google.com 上的当前 Google 帐户保存的内容。条目显示在网站域或 Android package/app 名称下,删除任何条目以重新开始。

  1. 自动 sign-in 当应用程序启动并且存在一个保存的条目时。这是推荐的用户体验模式,可以在设备之间无缝转换,帮助用户完成交易并从上次中断的地方继续他们的体验。 Sign-In UI 应在 API 调用完成之前禁用或隐藏,如果您已经有 signed-in 用户,请不要调用 API。

  2. Sign-up 在应用程序中使用密码,检查 hints dialog 以帮助填写 sign-up 表格姓名和电子邮件等字段,并检查保存提示,select "Save password".

  3. 自动 sign-in 重新安装应用程序(或清除应用程序数据)后。如果已保存某些内容或禁用自动 sign-in,则显示多个凭据提示。

  4. 常规 sign-in 在删除 passwords.google.com 处保存的所有密码后,在出现提示时保存现有帐户凭据。

  5. Sign-out 应用应调用 disableAutoSignIn。当用户 returns 转到 sign-in activity / UI 时,调用 API 并帮助重新登录或轻松切换帐户(应用程序应解决一个意图显示选择器对话框),而不自动让用户重新登录。

  6. 应用程序中的密码更新 应保存更改(应用程序应仅调用 保存API),但密码更新不需要UI)。检查 passwords.google.com 更新密码。

  7. Multiple accounts 在 sign-up 之后在网络上使用不同的第二个帐户,重新安装应用程序并查看是否为 sign-in 通过选择器对话框。

  8. 错误存储的密码:您可以在Chrome中通过运行登录时控制台中的以下内容保存错误的密码域:navigator.credentials.store(new PasswordCredential({id: 'user@example.com', password: 'wrongpassword'}))。然后在应用程序中测试检索它,这可能会提示用户更正密码并保存新密码,或者删除无效的凭据,这样用户就不会陷入这种状态。

  9. Web auto-fill 在 Chrome 中访问 https 网站时,检查Android 上保存的密码可用于填写网站密码字段(它们也应显示在 chrome://settings/passwords)。

  10. IDP sign-in 删除已保存的密码条目后,使用 Facebook 等登录 in/up 应用程序,可能会提示 "Save account"。重新安装以查看自动 sign-in 用户体验(即应用程序可能会自动 "click" 用户的适当按钮或为回访用户自定义 sign-in 屏幕)。 Google Sign-In 相同,但 silentSignIn, will save automatically to the appropriate Google account, see example use

请记住,如果您点击保存对话框上的 "Never" 按钮,它会将应用程序添加到 中的 从不保存 列表中设置 > Google > Smart Lock for Passwords 用于设备上的所有帐户,并且不会再次显示保存提示(API 错误消息 "The current app is blacklisted")。您需要从设备上所有帐户的从不保存列表中删除该应用,才能再次看到保存提示。

另请注意,Android 凭据与保存它们的应用程序的签名和包相关联,以防您在开发期间使用多个调试或发布密钥库对您的应用程序进行签名。

Google 发布了一个 REST API,它允许我们在您将应用发布到 Play 商店后测试您的网站和应用之间的关联,此处 https://developers.google.com/digital-asset-links/reference/rest/v1/assetlinks/check

API 输出已执行的所有检查的调试日志,以及链接是否有效。非常有用,但导入链接很少!

我用这个 API 来检查我的应用程序作为“源”,我的网站作为“目标”,在关系字段中使用这个 delegate_permission/common.get_login_creds 以及我的应用程序的包 ID,发布密钥哈希,当然还有我的网站 url 作为目标网站。