如何使用Passport.js访问Cookie集

Luk*_*sen 11 cookies login node.js passport.js

我正在使用Passport.js来登录我的Node-App.但在我的应用程序中,我需要访问用户的ID,目前,我不知道如何实现这个功能!

如何访问用户ID或我应该自己将其发送到cookie中?

And*_*duA 22

您应该在应用程序中引入以下代码,并在策略配置旁边:

passport.serializeUser(function(user, done) {
   done(null, user.id);
});

passport.deserializeUser(function(obj, done) {
   done(null, obj);
});
Run Code Online (Sandbox Code Playgroud)

这样,当您done使用经过身份验证的用户调用该函数时,passport会负责将userId存储在cookie中.每当您想要访问userId时,您都可以在请求正文中找到它.(在快递中 req["user"]).

serializeUser如果要在会话中存储其他数据,也可以开发该功能.我是这样做的:

passport.serializeUser(function(user, done) {
   done(null, {
      id: user["id"],
      userName: user["userName"],
      email: user["email"]
   });
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多:http://passportjs.org/docs/configure

  • 我已经解决了问题,我自己设置了一个自己的cookie,但感谢您的信息! (2认同)
  • 没有回答这个问题,现在未来的读者会感到困惑。看来楼主自己解决了。 (2认同)

use*_*182 18

添加到登录路径

res.cookie('userid', user.id, { maxAge: 2592000000 });  // Expires in one month
Run Code Online (Sandbox Code Playgroud)

添加到注销路径

res.clearCookie('userid');
Run Code Online (Sandbox Code Playgroud)

  • 我认为,问题是如何在护照回调和策略中将其与护照集成,我们可能无法访问 req/res。 (3认同)