Estoy usando @auth0/auth0-react
para manejar el proceso de autenticación. Para un usuario no autorizado, se redirigirá a la ruta de regreso a la pantalla inicial ("/") con estos parámetros de consulta. ?error=unauthorized...
Por otra parte, si intento ejecutar el inicio de sesión, permanecerá en la misma página. Tal vez necesito encontrar una manera de borrar el estado de autenticación anterior.
const { loginWithRedirect, logout} = useAuth0(); const loginWithAuth0 = () => { logout({}); // clear previous auth 0 state loginWithRedirect({ redirectUri: window.location.origin + "/dashboard" }); };
Arriba está mi intento. Usando el cierre de logout({})
estoy tratando de borrar el estado anterior de auth0 y seguir adelante, lo que no sucede. Para un usuario autorizado no hay problemas. Entonces, lo que necesito es manejar el comportamiento no autorizado del usuario. Actualmente no se redirigirá al tablero que es correcto para no autorizado. Pero lo que necesito es borrar el estado de autenticación anterior y redirigir al siguiente intento. ¿Cómo puedo lograrlo?
Podrías desestructurar el accesorio isAuthenticated
fuera del objeto devuelto por el gancho useAuth0()
:
const { loginWithRedirect, logout, isAuthenticated } = useAuth0(); if (!isAuthenticated) { logout({}); // (not certain this is necessary) // redirect with whatever router your framework might include }
Considere también la función withAuthenticationRequired
que se exporta desde el mismo @auth0/auth0-react
y le permite proteger una ruta/componente y configurar una redirección para usuarios no autenticados al mismo tiempo:
Cuando envuelve sus componentes en este componente de orden superior y un usuario anónimo visita su componente, será redirigido a la página de inicio de sesión y regresará a la página desde la que se nos redirige después de iniciar sesión.