Estoy tratando de entender una de las implementaciones de código abierto para lograr SSO basado en SAML y tengo problemas para entender el siguiente método de enrutador expreso de esta clase:
router.get('/', function(req, res, next) { console.log(arguments); if(req.isAuthenticated()){ res.render('index', { title: 'sp1 - My Application', user: req.user }); }else{ console.log('not authentcated sending to authenticate'); res.redirect('/login'); } });Mi pregunta es :
where exactly the code is setting `isAuthenticated` flag to true or false?Cuando lancé /iniciar sesión por primera vez, veo que es falso, pero nuevamente, cuando recibo una redirección de mi idp (proveedor de identidad), este indicador es verdadero y entro en la condición if.
Este método proviene del sistema de autenticación de pasaportes ,
Puedes comprobar la función en sí aquí :
/** * Test if request is authenticated. * * @return {Boolean} * @api public */ req.isAuthenticated = function() { var property = 'user'; if (this._passport && this._passport.instance._userProperty) { property = this._passport.instance._userProperty; } return (this[property]) ? true : false; };