头图

当拆开新设备精美的包装,揭去全新屏幕的贴膜,将新设备设置完成后,用户以前使用的应用便已经下载到了设备上,这便是全新移动设备的魔法。然而,当用户尝试使用他们的应用,却不得不重新进行认证时,换机的无缝体验便戛然而止。让用户记住账户凭据,并完成账户恢复流程,这带来的阻力会导致用户抛弃旧账户并创建一个新的账户,甚至直接放弃当前的应用。

为了解决这一问题,我们发布了 Block Store API,它使得在新设备中重新登录用户的应用,就像在设置流程中从备份中恢复信息一样简单,这样用户便可以在更换手机后,像没有换机前一样继续使用他们的应用。继续阅读以进一步了解 Block Store,本文将介绍它所带来的好处以及如何利用 Block Store 为用户提供神奇的体验。

什么是 Block Store?

Block Store API 可以让您的应用存储用户凭据,从而可在未来的新设备中取回凭据,并用于重新验证用户。当用户使用一台设备引导另一台设备时,凭据数据就会在设备间传输。

Block Store 的工作原理

  1. 当用户登录您的应用时 (或是在此之后的任何时间),您可以将您为用户生成的身份认证令牌保存至 Block Store。
  2. 当您使用 Block Store 保存令牌后,令牌会被加密并保存在设备的本地存储中。
  3. 当用户使用 "设备到设备" 的恢复流程时,数据会被传输到新设备上。
  4. 如果用户在 "设备到设备" 的恢复时选择同时恢复他们的数据,当用户在新设备上打开您的应用时,Block Store 会为您的应用取回令牌。

为什么要使用 Block Store?

虽然此 API 为可选接入,但是接入它可以为您的应用带来如下好处:

  • 如果用户不必劳神记住认证凭据,那他们也会更愿意使用唯一且更难以被网络钓鱼的密码。
  • 消除由登录带来的、可能最终导致您用户流失的使用阻力。
  • 集成 Block Store 十分简单,而且无论您的登录方式如何皆可正常工作。
  • Google 会验证用户的身份。

如何在我的应用中添加它?

当用户登录您的应用时,您可以通过调用 storeBytes() 将您为用户生成的身验认证令牌存储至 Block Store。这一操作会将用户的凭据存储到源设备。现在,令牌已被加密并保存到了设备的本地存储中。

<!-- Copyright 2021 Google LLC. 
   SPDX-License-Identifier: Apache-2.0 -->

val client = Blockstore.getClient(this)
client.retrieveBytes()
    .addOnSuccessListener { result ->
        Log.d(TAG, “Retrieved: ${String(result)}”)
    }

    .addOnFailureListener { e ->
      Log.e(TAG, “Failed to retrieve bytes”, e)
    }

当用户在新设备上完成 "设备到设备" 的恢复流程时,Block Store 会取回您的令牌。由于用户已经同意在恢复流程中恢复您应用的数据,所以此操作无需额外的许可。当用户打开您的应用时,您可以通过调用 retrieveBytes() 从 Block Store 请求您的令牌。取得的令牌可以用于在新设备上保持用户的登录状态。如果调用此接口的应用没有令牌,Block Store 依然会调用 onSuccessListener(),但结果会是空字节。如果您在同一个设备上先后调用 storeBytes()retrieveBytes()retrieveBytes() 会返回先前调用的 storeBytes() 设置的字节。

<!-- Copyright 2021 Google LLC. 
   SPDX-License-Identifier: Apache-2.0 -->

val client = Blockstore.getClient(this)
client.retrieveBytes()
    .addOnSuccessListener { result ->
        Log.d(TAG, “Retrieved: ${String(result)}”)
    }

    .addOnFailureListener { e ->
      Log.e(TAG, “Failed to retrieve bytes”, e)
    }

总结

以上便是开始使用 Block Store 所需的全部信息!点击这里 即刻了解更多相关内容。

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!


Android开发者
404 声望2k 粉丝

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。更多内容,请关注 官方 Android 开发者文档。