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
- Selesaikan langkah-langkah Memasukkan pengguna dalam sampel aplikasi seluler Android asli. Artikel ini memperlihatkan kepada Anda cara menjalankan contoh Android yang Anda konfigurasi dengan menggunakan pengaturan penyewa Anda.
- Tutorial: Menambahkan pendaftaran di aplikasi seluler Android menggunakan autentikasi asli. Langkah-langkah dalam tutorial ini harus berfungsi apakah Anda mendaftar dengan email dan kata sandi atau kode sandi satu kali email.
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()
}
}
}