Självstudie: Logga in användare automatiskt efter registrering i en iOS/macOS-app

Gäller för: Grön cirkel med en vit bockmarkeringssymbol som anger att följande innehåll gäller för externa klienter. Externa klienter (läs mer)

Den här självstudien visar hur du loggar in användare automatiskt efter registrering i en iOS/macOS-app med inbyggd autentisering.

I den här handledningen kommer du att:

  • Logga in efter registreringen.
  • Hantera felmeddelanden.

Förutsättningar

Logga in efter registreringen

Sign in after sign up Är en förbättringsfunktion i inloggningsanvändarflöden, vilket innebär att automatiskt logga in efter att du har registrerat dig. SDK ger utvecklare möjlighet att logga in en användare efter registreringen, utan att behöva ange användarnamnet eller verifiera e-postadressen via ett engångslösenord.

Om du vill logga in en användare efter lyckad registrering använder du signIn(delegate) metoden från det nya tillståndet SignInAfterSignUpState som returneras i 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!"
        let parameters = MSALNativeAuthSignInAfterSignUpParameters()
        newState.signIn(parameters: parameters, delegate: self)
    }
}

signIn(parameters:delegate) accepterar en MSALNativeAuthSignInAfterSignUpParameters-instans och en delegatparameter och vi måste implementera de metoder som krävs i SignInAfterSignUpDelegate-protokollet.

I det vanligaste scenariot får vi ett anrop till onSignInCompleted(result) som anger att användaren har loggat in. Resultatet kan användas för att hämta 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
        let parameters = MSALNativeAuthGetAccessTokenParameters()
        result.getAccessToken(parameters: parameters, delegate: self)
    }
}

getAccessToken(parameters:delegate) accepterar en MSALNativeAuthGetAccessTokenParameters-instans och en delegatparameter och vi måste implementera de metoder som krävs i CredentialsDelegate-protokollet.

I det vanligaste scenariot får vi ett anrop till onAccessTokenRetrieveCompleted(result) som anger att användaren fick en access token.

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

Konfigurera anpassad anspråksleverantör

Om du vill lägga till anspråk från ett externt system i token som utfärdas till din app, använder du en anpassad anspråksleverantör. En anpassad anspråksprovider består av ett anpassat autentiseringstillägg som anropar ett externt REST API för att hämta anspråk från externa system.

Följ stegen i Konfigurera en anpassad anspråksprovider för att lägga till anspråk från ett externt system i dina säkerhetstoken.

Nästa steg