Поделиться через


Руководство. Автоматический вход пользователя после регистрации в приложении iOS/macOS

Область применения: Зеленый круг с символом белой галочки. iOS (Swift) Зеленый круг с символом белой галочки. macOS (Swift) (Swift)

В этом руководстве показано, как автоматически выполнить вход пользователя после регистрации в приложении iOS/macOS с помощью собственной проверки подлинности.

В этом руководстве описано следующее:

  • Войдите после регистрации.
  • Обработка ошибок.

Необходимые компоненты

Вход после регистрации

Это Sign in after sign up улучшенная функция потоков пользователей входа, которая влияет на автоматический вход после успешной регистрации. Пакет SDK предоставляет разработчикам возможность входа пользователя после регистрации, не предоставляя имени пользователя или проверяя адрес электронной почты через одноразовый секретный код.

Чтобы войти в систему после успешной регистрации, используйте signIn(delegate) метод из нового состояния SignInAfterSignUpState , возвращенного в 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) принимает экземпляр MSALNativeAuthSignInAfterSignUpParameters и параметр делегата, и необходимо реализовать необходимые методы в протоколе SignInAfterSignUpDelegate.

В наиболее распространенном сценарии мы получаем вызов, указывающий onSignInCompleted(result) , что пользователь вошел в систему. Результат можно использовать для извлечения 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) принимает экземпляр MSALNativeAuthGetAccessTokenParameters и параметр делегата, и необходимо реализовать необходимые методы в протоколе CredentialsDelegate.

В наиболее распространенном сценарии мы получаем вызов, onAccessTokenRetrieveCompleted(result) указывающий, что пользователь получил .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)"
    }
}

Настройка настраиваемого поставщика утверждений

Если вы хотите добавить утверждения из внешней системы в маркер, выданный приложению, используйте настраиваемый поставщик утверждений. Настраиваемый поставщик утверждений состоит из настраиваемого расширения проверки подлинности, вызывающего внешний REST API для получения утверждений из внешних систем.

Выполните действия, описанные в разделе "Настройка настраиваемого поставщика утверждений" для добавления утверждений из внешней системы в маркеры безопасности.

Следующий шаг