He estado leyendo passport.js
información y muestras durante dos días, pero no estoy seguro de haber realizado todo el proceso de autenticación.
¿Cómo sé si he iniciado sesión? Por ejemplo, tendré una barra de navegación con un botón de inicio de sesión o cierre de sesión, ¿hay alguna variable como el código a continuación?
if (login)
<button>logout</button>
else
<button>login</button>
node.js
express
passport.js
RMontes13
fuente
fuente
app.get
,app.post
etc. Si necesita una funcionalidad diferente, debe explicarla en detalle en su pregunta, así como lo que está tratando de lograr.Si desea usarlo en sus plantillas, ya que su ejemplo de código parece indicar, puede crear algún middleware como este:
Coloque ese código en algún lugar después de haber configurado el pasaporte.
Y luego úselo en su plantilla (ejemplo de trago)
fuente
app.use(function(req,res,next){
res.locals.login = req.isAuthenticated();
res.locals.user = req.user;
next();
});
isAuthenticated
da falso en la siguiente solicitud. ¿Podría ayudarme a responder esta pregunta? Stackoverflow.com/questions/42842171/…No se documenta explícitamente pero hay un
isAuthenticated()
método que se inserta enreq
por pasaporte .Se puede utilizar de la siguiente manera,
fuente
Estaba buscando esa solución y encontré esta página. La pregunta es cómo verificar el estado de inicio de sesión en el lado del cliente.
Después de iniciar sesión, oculto el botón Iniciar sesión y muestro el botón Cerrar sesión. En la actualización de la página, vuelvo a ver el botón de inicio de sesión en lugar del botón de cierre de sesión. La única solución es guardar un elemento en sessionStorage si está usando session (y localStorage si está usando JWT). Elimine este elemento cuando cierre la sesión. Luego, en cada carga de la página, verifique este elemento de sessionStorage y hágalo en consecuencia.
fuente
use el siguiente código dentro de app.get () o router.get ()
fuente
Buena pregunta, tuve algunos problemas al intentar implementar algo como esto, cuando hay una solicitud no autenticada, el manillar omite el bloque if si la variable res.locals devuelve un valor falso. Para resolver este problema, debe configurar un middleware en su archivo app.js para que req.user esté disponible globalmente en su aplicación.
});
En su archivo de encabezado, puede hacer esta verificación para el usuario autenticado y mostrar el contenido de acuerdo como tal.
fuente