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

2021 年 9 月 17 日 谷歌开发者

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

为了解决这一问题,我们发布了 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)val token = StoreBytesData.Builder() .setBytes(/* BYTE_ARRAY */) .build()
// storeBytes 应当在用户验证完成之后再调用client.storeBytes(token)).addOnSuccessListener{ result -> Log.d(TAG, “Stored: ${result} bytes”) }

当用户在新设备上完成 "设备到设备" 的恢复流程时,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 所需的全部信息!点击屏末  | 即刻了解更多相关内容。

欢迎您通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!




推荐阅读

如页面未加载,请刷新重试



  点击屏末  | 即刻了解更多相关内容



登录查看更多
0

相关内容

【干货书】O'REILLY,Blockchain(区块链),149页
专知会员服务
40+阅读 · 2022年2月22日
专知会员服务
8+阅读 · 2021年6月20日
图计算加速架构综述
专知会员服务
49+阅读 · 2021年4月5日
【Manning新书】C++并行实战,592页pdf,C++ Concurrency in Action
Gradle 与 AGP 构建 API: 配置您的构建文件
谷歌开发者
0+阅读 · 2021年12月21日
领英远程开发云架构构建之路
InfoQ
0+阅读 · 2021年12月17日
WhatsApp 是如何实现端到端加密备份的?
InfoQ
0+阅读 · 2021年11月26日
代理网关设计与实现(基于NETTY)
阿里技术
0+阅读 · 2021年11月23日
微软正式发布Windows 11
微软研究院AI头条
0+阅读 · 2021年6月25日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
3+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
1+阅读 · 2022年4月18日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
11+阅读 · 2018年4月25日
Arxiv
10+阅读 · 2018年4月19日
VIP会员
相关资讯
Gradle 与 AGP 构建 API: 配置您的构建文件
谷歌开发者
0+阅读 · 2021年12月21日
领英远程开发云架构构建之路
InfoQ
0+阅读 · 2021年12月17日
WhatsApp 是如何实现端到端加密备份的?
InfoQ
0+阅读 · 2021年11月26日
代理网关设计与实现(基于NETTY)
阿里技术
0+阅读 · 2021年11月23日
微软正式发布Windows 11
微软研究院AI头条
0+阅读 · 2021年6月25日
相关基金
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
3+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员