블록 스토어

많은 사용자가 새 Android 기기를 설정할 때 여전히 자신의 자격 증명을 관리합니다. 이 수동 프로세스는 어려울 수 있으며 종종 사용자 경험이 좋지 않습니다. 블록 저장 API에 의해 구동되는 라이브러리 구글 플레이 서비스 , 외모 앱이 사용자 암호를 저장과 관련된 복잡성 또는 보안 위험없이 사용자 자격 증명을 저장하는 방법을 제공함으로써이 문제를 해결합니다.

Block Store API를 사용하면 앱이 나중에 검색하여 새 장치에서 사용자를 재인증할 수 있는 사용자 자격 증명을 저장할 수 있습니다. 이렇게 하면 사용자가 새 장치에서 앱을 처음 실행할 때 로그인 화면을 볼 필요가 없으므로 보다 원활한 환경을 제공하는 데 도움이 됩니다.

Block Store를 사용하면 다음과 같은 이점이 있습니다.

  • 개발자를 위한 암호화된 자격 증명 저장소 솔루션입니다. 자격 증명은 가능한 경우 종단 간 암호화됩니다.
  • 사용자 이름과 암호 대신 토큰을 저장합니다.
  • 로그인 흐름에서 마찰을 제거합니다.
  • 복잡한 암호 관리의 부담에서 사용자를 저장합니다.
  • Google은 사용자의 신원을 확인합니다.

시작하기 전에

앱 구성

  1. 프로젝트 수준에서 build.gradle 파일이 포함 구글의 메이븐 저장소 당신의 모두 buildscriptallprojects 섹션 :

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. 일반적으로 모듈의 응용 프로그램 수준 Gradle을 파일에 블록 저장 API에 대한 종속성을 추가 app/build.gradle :

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

작동 방식

사용자가 앱에 로그인하면 해당 사용자에 대해 생성한 인증 토큰을 Block Store에 저장할 수 있습니다. 이것은 호출하여 수행됩니다 setBytes() 의 인스턴스에 StoreBytesData.Builder 소스 장치로 사용자의 자격 증명을 저장합니다. 블록 스토어로 토큰을 저장하면 토큰이 암호화되어 장치에 로컬로 저장됩니다.

다음 코드 조각은 인증 토큰을 저장하는 방법을 보여줍니다.

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 서비스가 먼저 사용자를 확인한 다음 블록 스토어 데이터를 검색합니다. 사용자는 이미 복원 흐름의 일부로 앱 데이터를 복원하는 데 동의했으므로 추가 동의가 필요하지 않습니다. 사용자가 앱을 열 때, 당신은 호출하여 블록 스토어에서 토큰을 요청할 수 있습니다 retrieveBytes() . 그런 다음 검색된 토큰을 사용하여 사용자가 새 장치에서 로그인된 상태를 유지할 수 있습니다.

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