Bagikan melalui


Tutorial: Memasukkan pengguna secara otomatis setelah mendaftar di aplikasi Android

Berlaku untuk: Lingkaran putih dengan simbol X abu-abu. Tenaga Kerja Lingkaran hijau dengan simbol tanda centang putih. Penyewa eksternal (pelajari lebih lanjut)

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

Di tutorial ini, Anda akan:

  • Masuk setelah mendaftar.
  • Menangani kesalahan.

Prasyarat

Login setelah mendaftar

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

SignUpResult.Complete mengembalikan objek SignInContinuationState. Objek SignInContinuationState menyediakan akses ke metode signIn(parameters).

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

CoroutineScope(Dispatchers.Main).launch {
    val parameters = NativeAuthSignUpParameters(username = email)
    parameters.password = password
    val actionResult: SignUpResult = authClient.signUp(parameters)

    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 parameters = NativeAuthSignInContinuationParameters()
            val signInActionResult = signInContinuationState.signIn(parameters)

            if (signInActionResult is SignInResult.Complete) { 
                // Handle sign in success
                val accountState = signInActionResult.resultValue

                val getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
                val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)

                if (accessTokenResult is GetAccessTokenResult.Complete) {
                    val accessToken = accessTokenResult.resultValue.accessToken
                    val idToken = accountState.getIdToken()
                }
            } 
        } 
    } 
}

Untuk mengambil klaim token ID setelah masuk, gunakan langkah-langkah di Membaca klaim token ID.

Menangani kesalahan masuk

Metode SignInContinuationState.signIn(parameters) mengembalikan SignInResult.Complete setelah berhasil masuk. Ini juga dapat menghasilkan pesan kesalahan.

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

val parameters = NativeAuthSignInContinuationParameters()
val signInActionResult = signInContinuationState.signIn(parameters)

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 getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
        val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)
        if (accessTokenResult is GetAccessTokenResult.Complete) {
            val accessToken = accessTokenResult.resultValue.accessToken
            val idToken = accountState.getIdToken()
        }
    }
}

Langkah berikutnya