Google 致力於促進黑人社區的種族平等。 怎麼看。

積木店

許多用戶在設置新的 Android 設備時仍然管理自己的憑據。此手動過程可能會變得具有挑戰性,並且通常會導致糟糕的用戶體驗。該塊存儲API,搭載圖書館谷歌播放服務,看上去通過提供應用程序來保存用戶憑據而不保存用戶密碼相關的複雜性和安全風險的方式解決這個問題。

Block Store API 允許您的應用程序存儲用戶憑據,稍後可以檢索這些憑據以在新設備上重新驗證用戶。這有助於為用戶提供更無縫的體驗,因為他們在新設備上首次啟動您的應用程序時不需要看到登錄屏幕。

使用 Block Store 的好處包括:

  • 面向開發人員的加密憑證存儲解決方案。憑據在可能的情況下進行端到端加密。
  • 保存令牌而不是用戶名和密碼。
  • 消除登錄流程中的摩擦。
  • 使用戶免於管理複雜密碼的負擔。
  • Google 會驗證用戶的身份。

在你開始之前

配置您的應用

  1. 在項目級build.gradle文件,包括谷歌的Maven倉庫中你都buildscriptallprojects部分:

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. 添加的塊存儲API,將模塊的應用程序級的搖籃文件,這通常是依賴app/build.gradle

    dependencies {
      implementation 'com.google.android.gms:play-services-auth-blockstore:16.0.2'
    }
    

這個怎麼運作

當用戶登錄您的應用程序時,您可以將您為該用戶生成的身份驗證令牌保存到 Block Store。這是通過調用setBytes()上的一個實例StoreBytesData.Builder用戶的憑據存儲到源設備。使用 Block Store 保存令牌後,令牌將被加密並存儲在設備本地。

以下代碼片段顯示瞭如何保存身份驗證令牌:

val client = Blockstore.getClient(this)
val data = StoreBytesData.Builder()
        .setBytes(/* BYTE_ARRAY */)
        .build()
client.storeBytes(data)
        .addOnSuccessListener{ result ->
            Log.d(TAG, "Stored: ${result.getBytesStored()}")
        }

稍後,當用戶在新設備上執行設備到設備恢復流程時,Google Play 服務首先驗證用戶,然後檢索您的 Block Store 數據。作為恢復流程的一部分,用戶已經同意恢復您的應用數據,因此不需要額外的同意。當用戶打開您的應用程序,你可以通過調用請求塊存儲您的令牌retrieveBytes()然後可以使用檢索到的令牌使用戶在新設備上保持登錄狀態。

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