当拆开新设备精美的包装,揭去全新屏幕的贴膜,将新设备设置完成后,用户以前使用的应用便已经下载到了设备上,这便是全新移动设备的魔法。然而,当用户尝试使用他们的应用,却不得不重新进行认证时,换机的无缝体验便戛然而止。让用户记住账户凭据,并完成账户恢复流程,这带来的阻力会导致用户抛弃旧账户并创建一个新的账户,甚至直接放弃当前的应用。
为了解决这一问题,我们发布了 Block Store API,它使得在新设备中重新登录用户的应用,就像在设置流程中从备份中恢复信息一样简单,这样用户便可以在更换手机后,像没有换机前一样继续使用他们的应用。继续阅读以进一步了解 Block Store,本文将介绍它所带来的好处以及如何利用 Block Store 为用户提供神奇的体验。
什么是 Block Store?
Block Store API 可以让您的应用存储用户凭据,从而可在未来的新设备中取回凭据,并用于重新验证用户。当用户使用一台设备引导另一台设备时,凭据数据就会在设备间传输。
Block Store 的工作原理
- 当用户登录您的应用时 (或是在此之后的任何时间),您可以将您为用户生成的身份认证令牌保存至 Block Store。
- 当您使用 Block Store 保存令牌后,令牌会被加密并保存在设备的本地存储中。
- 当用户使用 "设备到设备" 的恢复流程时,数据会被传输到新设备上。
- 如果用户在 "设备到设备" 的恢复时选择同时恢复他们的数据,当用户在新设备上打开您的应用时,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 所需的全部信息!点击这里 即刻了解更多相关内容。
欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。