Udostępnij za pośrednictwem


Samouczek: automatyczne logowanie użytkownika po zarejestrowaniu się w aplikacji systemu iOS/macOS

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru. iOS (Swift) macOS (Swift) Zielony okrąg z białym symbolem znacznika wyboru.

W tym samouczku pokazano, jak zalogować użytkownika automatycznie po zarejestrowaniu się w aplikacji systemu iOS/macOS przy użyciu uwierzytelniania natywnego.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Zaloguj się po utworzeniu konta.
  • Obsługa błędów.

Wymagania wstępne

Zaloguj się po utworzeniu konta

Jest Sign in after sign up to ulepszona funkcja przepływów logowania użytkownika, która ma wpływ na automatyczne logowanie po pomyślnym zarejestrowaniu. Zestaw SDK zapewnia deweloperom możliwość logowania użytkownika po zarejestrowaniu, bez konieczności podawania nazwy użytkownika lub weryfikowania adresu e-mail za pomocą jednorazowego kodu dostępu.

Aby zalogować użytkownika po pomyślnym zarejestrowaniu, użyj signIn(delegate) metody z nowego stanu SignInAfterSignUpState zwróconego w pliku onSignUpCompleted(newState):

extension ViewController: SignUpVerifyCodeDelegate {
    func onSignUpVerifyCodeError(error: MSAL.VerifyCodeError, newState: MSAL.SignUpCodeRequiredState?) {
        resultTextView.text = "Error verifying code: \(error.errorDescription ?? "no description")"
    }

    func onSignUpCompleted(newState: SignInAfterSignUpState) {
        resultTextView.text = "Signed up successfully!"
        newState.signIn(delegate: self)
    }
}

Element signIn(delegate) akceptuje parametr delegata i musimy zaimplementować wymagane metody w protokole SignInAfterSignUpDelegate .

W najbardziej typowym scenariuszu otrzymujemy wywołanie onSignInCompleted(result) wskazujące, że użytkownik się zalogował. Wynik może służyć do pobrania .access token

extension ViewController: SignInAfterSignUpDelegate {
    func onSignInAfterSignUpError(error: SignInAfterSignUpError) {
        resultTextView.text = "Error signing in after sign up"
    }

    func onSignInCompleted(result: MSAL.MSALNativeAuthUserAccountResult) {
        // User successfully signed in
        result.getAccessToken(delegate: self)
    }
}

Element getAccessToken(delegate) akceptuje parametr delegata i musimy zaimplementować wymagane metody w protokole CredentialsDelegate .

W najbardziej typowym scenariuszu otrzymujemy wywołanie onAccessTokenRetrieveCompleted(result) wskazujące, że użytkownik uzyskał access tokenelement .

extension ViewController: CredentialsDelegate {
    func onAccessTokenRetrieveError(error: MSAL.RetrieveAccessTokenError) {
        resultTextView.text = "Error retrieving access token"
    }

    func onAccessTokenRetrieveCompleted(result: MSALNativeAuthTokenResult) {
        resultTextView.text = "Signed in. Access Token: \(result.accessToken)"
    }
}

Konfigurowanie niestandardowego dostawcy oświadczeń

Jeśli chcesz dodać oświadczenia z systemu zewnętrznego do tokenu wystawionego dla aplikacji, użyj niestandardowego dostawcy oświadczeń. Niestandardowy dostawca oświadczeń składa się z niestandardowego rozszerzenia uwierzytelniania, które wywołuje zewnętrzny interfejs API REST w celu pobierania oświadczeń z systemów zewnętrznych.

Wykonaj kroki opisane w temacie Konfigurowanie niestandardowego dostawcy oświadczeń, aby dodać oświadczenia z systemu zewnętrznego do tokenów zabezpieczających.

Następny krok