Tutorial: Benutzer automatisch nach der Registrierung in einer iOS/macOS App anmelden
Gilt für: iOS (Swift) macOS (Swift)
Dieses Tutorial zeigt, wie man sich nach der Registrierung in einer iOS/macOS App mit Hilfe der nativen Authentifizierung automatisch anmeldet.
In diesem Tutorial lernen Sie Folgendes:
- Anmelden nach der Registrierung
- Behandeln von Fehlern
Voraussetzungen
- Wenn Sie unter iOS arbeiten, befolgen Sie die Schritte in Benutzer in der mobilen iOS (Swift)-Beispiel-App mithilfe der nativen Authentifizierung anmelden. Wenn Sie macOS verwenden, folgen Sie den Schritten in Benutzer in der macOS (Swift)-Beispiel-App mit nativer Authentifizierung anmelden. In diesen Artikeln erfahren Sie, wie Sie Beispiel-Apps ausführen, die Sie anhand Ihrer Mandanteneinstellungen konfigurieren.
- Tutorial: Hinzufügen der Registrierung in einer iOS/macOS App mit nativer Authentifizierung. Die Schritte in diesem Tutorial sollten funktionieren, unabhängig davon, ob Sie sich mit E-Mail und Kennwort oder Einmal-Passcode per E-Mail registrieren.
Anmelden nach der Registrierung
Sign in after sign up
ist eine erweiterte Funktionalität des Benutzeranmeldeflows, die bewirkt, dass Benutzer nach der erfolgreichen Registrierung automatisch angemeldet werden. Das SDK bietet die Möglichkeit, Benutzer nach der Registrierung anzumelden, ohne den Benutzernamen angeben oder die E-Mail-Adresse über einen Einmal-Passcode überprüfen zu müssen.
Um Benutzer nach erfolgreicher Registrierung anzumelden, verwenden Sie die Methode signIn(delegate)
aus dem neuen Status SignInAfterSignUpState
, der in der Funktion onSignUpCompleted(newState)
zurückgegeben wird:
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)
}
}
signIn(delegate)
akzeptiert einen Delegatparameter, und wir müssen die erforderlichen Methoden im Protokoll SignInAfterSignUpDelegate
implementieren.
Im häufigsten Szenario erhalten wir einen Aufruf von onSignInCompleted(result)
, der angibt, dass sich der Benutzer angemeldet hat. Das Ergebnis kann zum Abrufen des access token
verwendet werden.
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)
}
}
getAccessToken(delegate)
akzeptiert einen Delegatparameter, und wir müssen die erforderlichen Methoden im Protokoll CredentialsDelegate
implementieren.
Im häufigsten Szenario erhalten wir einen Aufruf von onAccessTokenRetrieveCompleted(result)
, der angibt, dass der Benutzer ein access token
erhalten hat.
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)"
}
}
Konfigurieren eines benutzerdefinierten Anspruchsanbieters
Wenn Sie Ansprüche aus einem externen System in das Token einfügen möchten, das an Ihre Anwendung ausgegeben wird, verwenden Sie einen benutzerdefinierten Anspruchsanbieter. Ein benutzerdefinierter Anspruchsanbieter besteht aus einer benutzerdefinierten Authentifizierungserweiterung, die eine externe REST-API aufruft, um Ansprüche aus externen Systemen abzurufen.
Führen Sie die Schritte unter Konfigurieren eines benutzerdefinierten Anspruchsanbieters durch, um Ansprüche aus einem externen System zu Ihren Sicherheitstoken hinzuzufügen.