Bagikan melalui


Tutorial: Memasukkan pengguna secara otomatis setelah mendaftar di aplikasi Android

Tutorial ini menunjukkan cara masuk pengguna secara otomatis setelah mendaftar di aplikasi Android dengan menggunakan autentikasi asli.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Masuk setelah mendaftar.
  • Menangani kesalahan.

Prasyarat

Masuk setelah pendaftaran

Setelah alur pendaftaran berhasil, Anda dapat secara otomatis masuk ke pengguna Anda tanpa memulai alur masuk baru.

Objek SignUpResult.Complete yang SignInContinuationState dikembalikan. Objek SignInContinuationState menyediakan akses ke signIn() metode.

Untuk mendaftarkan pengguna dengan email dan kata sandi, lalu secara otomatis masuk, gunakan cuplikan kode berikut:

CoroutineScope(Dispatchers.Main).launch { 
    val signUpActionResult = authClient.signUp( 
        username = emailAddress, 
        password = password 
    ) 
    if (SignUpActionResult is SignUpResult.CodeRequired) { 
        val nextState = signUpActionResult.nextState 
        val submitCodeActionResult = nextState.submitCode( 
            code = code 
        ) 
        if (submitCodeActionResult is SignUpResult.Complete) { 
            // Handle sign up success 
            val signInContinuationState = actionResult.nextState 
            val signInActionResult = signInContinuationState.signIn() 
            if (signInActionResult is SignInResult.Complete) { 
                // Handle sign in success
                val accountState = signInActionResult.resultValue
                val accessTokenResult = accountState.getAccessToken()
                if (accessTokenResult is GetAccessTokenResult.Complete) {
                    val accessToken = accessTokenResult.resultValue.accessToken
                    val idToken = accountState.getIdToken()
                }
            } 
        } 
    } 
}

Untuk mengambil klaim token ID setelah masuk, gunakan langkah-langkah dalam klaim token ID Baca.

Menangani kesalahan masuk

Metode SignInContinuationState.signIn() ini kembali SignInResult.Complete setelah berhasil masuk. Ini juga dapat mengembalikan kesalahan.

Untuk menangani kesalahan di SignInContinuationState.signIn(), gunakan cuplikan kode berikut:

val signInContinuationState = actionResult.nextState 
val signInActionResult = signInContinuationState.signIn() 

when (signInActionResult) {
    is SignInResult.Complete -> {
        // Handle sign in success
         displayAccount(accountState = actionResult.resultValue)
    }
    is SignInContinuationError -> {
        // Handle unexpected error
    }
    else -> {
        // Handle unexpected error
    }
}

private fun displayAccount(accountState: AccountState) {
    CoroutineScope(Dispatchers.Main).launch {
        val accessTokenResult = accountState.getAccessToken()
        if (accessTokenResult is GetAccessTokenResult.Complete) {
            val accessToken = accessTokenResult.resultValue.accessToken
            val idToken = accountState.getIdToken()
        }
    }
}

Langkah berikutnya