Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Externe Mandanten (weitere Informationen)
In diesem Lernprogramm wird veranschaulicht, wie Sicherheitstoken über eine browserbasierte Authentifizierung abgerufen werden, bei der die systemeigene Authentifizierung nicht ausreicht, um den Authentifizierungsfluss mithilfe eines Mechanismus namens Web-Fallback abzuschließen.
Web-Fallback ermöglicht einer Client-App, die systemeigene Authentifizierung verwendet, um die browserdelegierte Authentifizierung als Fallbackmechanismus zu verwenden, um die Resilienz zu verbessern. Dieses Szenario tritt auf, wenn die native Authentifizierung nicht ausreicht, um den Authentifizierungsflow abzuschließen. Wenn beispielsweise der Autorisierungsserver Funktionen benötigt, die der Client nicht bereitstellen kann. Weitere Informationen zum Web-Fallback.
In diesem Tutorial erfahren Sie:
- Fehler überprüfen
isRedirectRequired. - Behandeln sie
isRedirectRequiredFehler.
Voraussetzungen
- Führen Sie die Schritte im Lernprogramm aus: Melden Sie sich mit dem JavaScript SDK für systemeigene Authentifizierung bei einer React-Einzelseiten-App an.
Überprüfen und Behandeln von Web-Fallbacks
Einer der Fehler, die auftreten können, wenn Sie das JavaScript SDK signIn() oder SignUp() die Methode verwenden, ist result.error?.isRedirectRequired(). Die Hilfsmethode isRedirectRequired() überprüft die Notwendigkeit, auf die browserdelegierte Authentifizierung zurückzugreifen. Verwenden Sie den folgenden Codeausschnitt, um Web-Fallback zu unterstützen:
const result = await authClient.signIn({
username,
});
if (result.isFailed()) {
if (result.error?.isRedirectRequired()) {
// Fallback to the delegated authentication flow.
const popUpRequest: PopupRequest = {
authority: customAuthConfig.auth.authority,
scopes: [],
redirectUri: customAuthConfig.auth.redirectUri || "",
prompt: "login", // Forces the user to enter their credentials on that request, negating single-sign on.
};
try {
await authClient.loginPopup(popUpRequest);
const accountResult = authClient.getCurrentAccount();
if (accountResult.isFailed()) {
setError(
accountResult.error?.errorData?.errorDescription ??
"An error occurred while getting the account from cache"
);
}
if (accountResult.isCompleted()) {
result.state = new SignInCompletedState();
result.data = accountResult.data;
}
} catch (error) {
if (error instanceof Error) {
setError(error.message);
} else {
setError("An unexpected error occurred while logging in with popup");
}
}
} else {
setError(`An error occurred: ${result.error?.errorData?.errorDescription}`);
}
}
Wenn die App den Fallbackmechanismus verwendet, erwirbt die App Mithilfe der loginPopup() Methode Sicherheitstoken.
Verwandte Inhalte
- Weitere Informationen zum Web-Fallback.
- Erfahren Sie mehr über systemeigene Authentifizierungsabfragetypen.