Samouczek: automatyczne logowanie użytkownika po zarejestrowaniu się w aplikacji systemu iOS/macOS
Dotyczy: iOS (Swift) macOS (Swift)
W tym samouczku pokazano, jak zalogować użytkownika automatycznie po zarejestrowaniu się w aplikacji systemu iOS/macOS przy użyciu uwierzytelniania natywnego.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Zaloguj się po utworzeniu konta.
- Obsługa błędów.
Wymagania wstępne
- Jeśli korzystasz z systemu iOS, wykonaj kroki opisane w artykule Logowanie użytkowników w przykładowej aplikacji mobilnej systemu iOS (Swift) przy użyciu uwierzytelniania natywnego. Jeśli używasz systemu macOS, wykonaj kroki opisane w artykule Logowanie użytkowników w przykładowej aplikacji systemu macOS (Swift) przy użyciu uwierzytelniania natywnego. W tych artykułach pokazano, jak uruchamiać przykładowe aplikacje konfigurowane przy użyciu ustawień dzierżawy.
- Samouczek: dodawanie rejestracji w aplikacji systemu iOS/macOS przy użyciu uwierzytelniania natywnego. Kroki opisane w tym samouczku powinny działać niezależnie od tego, czy zarejestrujesz się przy użyciu poczty e-mail i hasła, czy jednorazowego kodu dostępu.
Zaloguj się po utworzeniu konta
Jest Sign in after sign up
to ulepszona funkcja przepływów logowania użytkownika, która ma wpływ na automatyczne logowanie po pomyślnym zarejestrowaniu. Zestaw SDK zapewnia deweloperom możliwość logowania użytkownika po zarejestrowaniu, bez konieczności podawania nazwy użytkownika lub weryfikowania adresu e-mail za pomocą jednorazowego kodu dostępu.
Aby zalogować użytkownika po pomyślnym zarejestrowaniu, użyj signIn(delegate)
metody z nowego stanu SignInAfterSignUpState
zwróconego w pliku 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)
}
}
Element signIn(delegate)
akceptuje parametr delegata i musimy zaimplementować wymagane metody w protokole SignInAfterSignUpDelegate
.
W najbardziej typowym scenariuszu otrzymujemy wywołanie onSignInCompleted(result)
wskazujące, że użytkownik się zalogował. Wynik może służyć do pobrania .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)
}
}
Element getAccessToken(delegate)
akceptuje parametr delegata i musimy zaimplementować wymagane metody w protokole CredentialsDelegate
.
W najbardziej typowym scenariuszu otrzymujemy wywołanie onAccessTokenRetrieveCompleted(result)
wskazujące, że użytkownik uzyskał access token
element .
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)"
}
}
Konfigurowanie niestandardowego dostawcy oświadczeń
Jeśli chcesz dodać oświadczenia z systemu zewnętrznego do tokenu wystawionego dla aplikacji, użyj niestandardowego dostawcy oświadczeń. Niestandardowy dostawca oświadczeń składa się z niestandardowego rozszerzenia uwierzytelniania, które wywołuje zewnętrzny interfejs API REST w celu pobierania oświadczeń z systemów zewnętrznych.
Wykonaj kroki opisane w temacie Konfigurowanie niestandardowego dostawcy oświadczeń, aby dodać oświadczenia z systemu zewnętrznego do tokenów zabezpieczających.