다음을 통해 공유


자습서: Android 앱에 등록한 후 자동으로 사용자 로그인

적용 대상: 회색 X 기호가 있는 흰색 원. Workforce 테넌트 흰색 확인 표시 기호가 있는 녹색 원. 외부 테넌트 (자세히 알아보기)

이 자습서에서는 네이티브 인증을 사용하여 Android 앱에 등록한 후 자동으로 사용자를 로그인하는 방법을 보여 줍니다.

이 자습서에서는 다음을 수행합니다.

  • 등록 후에 로그인하세요.
  • 오류를 처리합니다.

필수 구성 요소

  • 샘플 네이티브 Android 모바일 애플리케이션 사용자 로그인단계를 완료합니다. 이 문서에서는 테넌트 설정을 사용하여 구성하는 샘플 Android를 실행하는 방법을 보여 줍니다.
  • 자습서: 네이티브 인증사용하여 Android 모바일 앱에 등록을 추가합니다. 이 자습서의 단계는 전자 메일 및 암호로 등록하든, 일회용 암호로 등록하든 관계없이 작동합니다.

등록 후 로그인

성공적인 등록 흐름 후에는 새 로그인 흐름을 시작하지 않고도 사용자를 자동으로 로그인할 수 있습니다.

SignUpResult.Complete SignInContinuationState 개체를 반환합니다. SignInContinuationState 개체는 signIn(parameters) 메서드에 대한 액세스를 제공합니다.

전자 메일 및 암호를 사용하여 사용자를 등록한 다음 자동으로 로그인하려면 다음 코드 조각을 사용합니다.

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()
                }
            } 
        } 
    } 
}

로그인 후 ID 토큰 클레임을 검색하려면 ID 토큰 클레임 읽기단계를 사용합니다.

로그인 오류 처리

SignInContinuationState.signIn(parameters) 메서드는 성공적으로 로그인한 후 SignInResult.Complete 반환합니다. 오류를 반환할 수도 있습니다.

SignInContinuationState.signIn(parameters)오류를 처리하려면 다음 코드 조각을 사용합니다.

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()
        }
    }
}

다음 단계