Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Externa klienter (läs mer)
Den här självstudien visar hur du hämtar säkerhetstoken via en webbläsarbaserad autentisering där intern autentisering inte räcker för att slutföra autentiseringsflödet med hjälp av en mekanism som kallas webbåterställning.
Med webbåterfall kan en klientapp som använder inbyggd autentisering använda webbläsardelad autentisering som en reservmekanism för att förbättra resiliensen. Det här scenariot inträffar när intern autentisering inte räcker för att slutföra autentiseringsflödet. Om auktoriseringsservern till exempel kräver funktioner som klienten inte kan tillhandahålla. Läs mer om webbåterställning.
I den här handledningen kommer du att:
- Kontrollera
isRedirectRequiredfelet. - Hantera
isRedirectRequiredfel.
Förutsättningar
Kontrollera och hantera webbåterställning
Ett av de fel du kan stöta på när du använder JavaScript SDK eller signIn()SignUp() -metoden är result.error?.isRedirectRequired(). Verktygsmetoden isRedirectRequired() kontrollerar behovet av att återgå till webbläsardelad autentisering. Använd följande kodfragment för att stödja webbåterställning:
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}`);
}
}
När appen använder återställningsmekanismen hämtar appen säkerhetstoken med hjälp loginPopup() av metoden .
Relaterat innehåll
- Läs mer om webbåterställning.
- Läs mer om typer av interna autentiseringsutmaningar.