Estoy usando la biblioteca auth0/nextjs. Estoy tratando de manejar la verificación de correo electrónico. Tengo acceso a la variable email_verification . Si no se verifica, se redirigirá a la página /please-verifiy-your-email .
En este momento estoy usando el método handleCallback proporcionado por auth0/nextjs.
Código:
const afterCallback = (req, res, session, state) => { if (!session.user.email_verified) { res.status(200).redirect('/please-verifiy-your-email') } return session; }; export default auth0.handleAuth({ async login(req, res) { try { await auth0.handleLogin(req, res, { authorizationParams: { audience: 'https://dev-okz2bacx.us.auth0.com/api/v2/', scope: 'openid profile email read:branding' }, returnTo: "/dashboard" }); } catch (error) { res.status(error.status || 400).end(error.message); } }, async callback(req, res) { try { await auth0.handleCallback(req, res, { afterCallback }); } catch (error) { res.status(error.status || 500).end(error.message); } } });¿Cómo puedo asegurarme de que el usuario todavía está conectado, para obtener su correo electrónico para reenviarlo o la posibilidad de cambiar su correo electrónico?
También necesita la oportunidad de registrarse de nuevo, porque cuando llame a api/auth/login después de iniciar sesión con el correo electrónico no verificado, se redirigirá automáticamente a /please-verifiy-your-email . Supongo que la sesión no se cancela y auth0 vuelve a redirigir aunque no tuve la oportunidad de volver a registrarme.
Sería genial si obtengo algunas entradas.
Resolvería el problema si pudiera iniciar sesión con el usuario y luego lo redirigiría a /please-verifiy-your-email . Podría obtener su dirección de correo electrónico y su nombre para otras funciones, como reenviar la verificación. En este momento llamo a api/auth/me y obtengo:
{"error":"not_authenticated","description":"El usuario no tiene una sesión activa o no está autenticado"}