Partager via


Tutoriel : connecter automatiquement un utilisateur à une application iOS/macOS après l’inscription

S’applique à : Cercle vert avec un symbole de coche blanche. iOS (Swift) Cercle vert avec un symbole de coche blanche. macOS (Swift)

Ce tutoriel montre comment connecter l’utilisateur automatiquement après l’inscription à une application iOS/macOS à l’aide de l’authentification native.

Dans ce tutoriel, vous allez apprendre à :

  • Vous connecter après l’inscription.
  • Gérer les erreurs.

Prérequis

Se connecter après l’inscription

Sign in after sign up est une fonctionnalité d’amélioration des flux de connexion des utilisateurs qui a pour effet de connecter automatiquement les utilisateurs après l’inscription. Le kit de développement logiciel (SDK) permet aux développeurs de connecter un utilisateur après l’inscription, sans avoir à fournir le nom d’utilisateur ou à vérifier l’adresse e-mail via un code secret à usage unique.

Pour connecter un utilisateur après l’inscription réussie, utilisez la méthode signIn(delegate) à partir du nouvel état SignInAfterSignUpState retourné dans 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)
    }
}

La méthode signIn(delegate) accepte un paramètre délégué et nous devons implémenter les méthodes requises dans le protocole SignInAfterSignUpDelegate.

Dans le scénario le plus courant, nous recevons un appel à onSignInCompleted(result) indiquant que l’utilisateur s’est connecté. Le résultat peut être utilisé pour récupérer 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)
    }
}

La méthode getAccessToken(delegate) accepte un paramètre délégué et nous devons implémenter les méthodes requises dans le protocole CredentialsDelegate.

Dans le scénario le plus courant, nous recevons un appel à onAccessTokenRetrieveCompleted(result) indiquant que l’utilisateur a obtenu un 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)"
    }
}

Configurer un fournisseur de revendications personnalisé

Si vous souhaitez ajouter des revendications à partir d’un système externe au jeton émis pour votre application, utilisez un fournisseur de revendications personnalisé. Un fournisseur de revendications personnalisé est constitué d’une extension d’authentification personnalisée qui appelle une API REST externe pour récupérer des revendications provenant de systèmes externes.

Suivez les étapes détaillées dans Configurer un fournisseur de revendications personnalisé pour ajouter des revendications à partir d’un système externe dans vos jetons de sécurité.

Étape suivante