通过 Block Store 实现账户无缝迁移

通过 Block Store 实现账户无缝迁移

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

为了解决这一问题,我们发布了 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 所需的全部信息!点击这里 即刻了解更多相关内容。

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

版权声明

禁止一切形式的转载-禁止商用-禁止衍生 申请授权

脉脉不得语
脉脉不得语
Zhengzhou Website
Android Developer | https://androiddevtools.cn and https://androidweekly.io WebMaster | GDG Zhengzhou Funder & Ex Organizer | http://Toast.show(∞) Podcast Host

你已经成功订阅到 Android 开发技术周报
太棒了!接下来,完成检验以获得全部访问权限 Android 开发技术周报
欢迎回来!你已经成功登录了。
Unable to sign you in. Please try again.
成功!您的帐户已完全激活,您现在可以访问所有内容。
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.