Debe introducir el siguiente código en su aplicación, junto a la configuración de las estrategias:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
De esta manera, cuando se invoca la función done
al usuario autenticado, el pasaporte se encarga de almacenar la userId en una cookie. Cuando quiera acceder al userId, puede encontrarlo en el cuerpo de la solicitud. (en el expreso req["user"]
).
También puede desarrollar la función serializeUser
si desea almacenar otros datos en la sesión. Lo hago de esta manera:
passport.serializeUser(function(user, done) {
done(null, {
id: user["id"],
userName: user["userName"],
email: user["email"]
});
});
Puede encontrar más información aquí: http://passportjs.org/docs/configure
tengo esto ya que mi código - pero necesito para acceder a la cookie en el lado del cliente, usando javascript - es esto posible? –
Lo siento, no entendí eso de su pregunta. Acabo de analizar las cookies en mi aplicación node.js y no veo ninguna configurada por pasaportejs. Connect simplemente establece una cookie con el sessionId. El resto de la información se almacena en el servidor. Creo que debes establecer manualmente una cookie con los datos deseados y luego analizarla mediante javascript en el cliente. (usando express: [link] (http://expressjs.com/api.html#res.cookie)). – AnduA
Ya he resuelto el problema configurando una cookie propia, ¡pero gracias por su información! –