Freigeben über


Tutorial: Benutzer automatisch nach der Registrierung in einer iOS/macOS App anmelden

Gilt für: Grüner Kreis mit weißem Häkchen. iOS (Swift) Grüner Kreis mit weißem Häkchen. macOS (Swift)

Dieses Tutorial zeigt, wie man sich nach der Registrierung in einer iOS/macOS App mit Hilfe der nativen Authentifizierung automatisch anmeldet.

In diesem Tutorial lernen Sie Folgendes:

  • Anmelden nach der Registrierung
  • Behandeln von Fehlern

Voraussetzungen

Anmelden nach der Registrierung

Sign in after sign up ist eine erweiterte Funktionalität des Benutzeranmeldeflows, die bewirkt, dass Benutzer nach der erfolgreichen Registrierung automatisch angemeldet werden. Das SDK bietet die Möglichkeit, Benutzer nach der Registrierung anzumelden, ohne den Benutzernamen angeben oder die E-Mail-Adresse über einen Einmal-Passcode überprüfen zu müssen.

Um Benutzer nach erfolgreicher Registrierung anzumelden, verwenden Sie die Methode signIn(delegate) aus dem neuen Status SignInAfterSignUpState, der in der Funktion onSignUpCompleted(newState) zurückgegeben wird:

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

signIn(delegate) akzeptiert einen Delegatparameter, und wir müssen die erforderlichen Methoden im Protokoll SignInAfterSignUpDelegate implementieren.

Im häufigsten Szenario erhalten wir einen Aufruf von onSignInCompleted(result), der angibt, dass sich der Benutzer angemeldet hat. Das Ergebnis kann zum Abrufen des access token verwendet werden.

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

getAccessToken(delegate) akzeptiert einen Delegatparameter, und wir müssen die erforderlichen Methoden im Protokoll CredentialsDelegate implementieren.

Im häufigsten Szenario erhalten wir einen Aufruf von onAccessTokenRetrieveCompleted(result), der angibt, dass der Benutzer ein access token erhalten hat.

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

Konfigurieren eines benutzerdefinierten Anspruchsanbieters

Wenn Sie Ansprüche aus einem externen System in das Token einfügen möchten, das an Ihre Anwendung ausgegeben wird, verwenden Sie einen benutzerdefinierten Anspruchsanbieter. Ein benutzerdefinierter Anspruchsanbieter besteht aus einer benutzerdefinierten Authentifizierungserweiterung, die eine externe REST-API aufruft, um Ansprüche aus externen Systemen abzurufen.

Führen Sie die Schritte unter Konfigurieren eines benutzerdefinierten Anspruchsanbieters durch, um Ansprüche aus einem externen System zu Ihren Sicherheitstoken hinzuzufügen.

Nächster Schritt