Руководство. Автоматический вход пользователя после регистрации в приложении iOS/macOS
Область применения: iOS (Swift) macOS (Swift) (Swift)
В этом руководстве показано, как автоматически выполнить вход пользователя после регистрации в приложении iOS/macOS с помощью собственной проверки подлинности.
В этом руководстве описано следующее:
- Войдите после регистрации.
- Обработка ошибок.
Необходимые компоненты
- Если вы находитесь в iOS, выполните действия, описанные в разделе "Вход пользователей" в примере мобильного приложения iOS (Swift) с помощью собственной проверки подлинности. Если вы используете macOS, выполните действия, описанные в разделе "Вход пользователей в примере приложения macOS (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 для получения утверждений из внешних систем.
Выполните действия, описанные в разделе "Настройка настраиваемого поставщика утверждений" для добавления утверждений из внешней системы в маркеры безопасности.