Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Inquilinos externos (saiba mais)
Este tutorial demonstra como adquirir tokens de segurança por meio de uma autenticação baseada em navegador em que a autenticação nativa não é suficiente para concluir o fluxo de autenticação usando um mecanismo chamado fallback da Web.
O fallback da Web permite que um aplicativo cliente que usa autenticação nativa use a autenticação delegada pelo navegador como um mecanismo de fallback para melhorar a resiliência. Esse cenário acontece quando a autenticação nativa não é suficiente para concluir o fluxo de autenticação. Por exemplo, se o servidor de autorização exigir recursos que o cliente não pode fornecer. Saiba mais sobre o fallback da Web.
Neste tutorial, você:
- Erro de verificação
isRedirectRequired. - Manipular
isRedirectRequirederro.
Pré-requisitos
Verificar e manipular o fallback da Web
Um dos erros que você pode encontrar ao usar o método ou SDK do signIn()SignUp() JavaScript é result.error?.isRedirectRequired()o . O método isRedirectRequired() utilitário verifica a necessidade de recorrer à autenticação delegada pelo navegador. Use o seguinte trecho de código para oferecer suporte ao fallback da Web:
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}`);
}
}
Quando o aplicativo usa o mecanismo de fallback, o aplicativo adquire tokens de segurança usando o loginPopup() método.
Conteúdo relacionado
- Saiba mais sobre o fallback da Web.
- Saiba mais sobre os tipos de desafio de autenticação nativa.