Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将cookie与nodejs和mongodb一起使用?_Node.js_Mongodb_Cookies - Fatal编程技术网

Node.js 如何将cookie与nodejs和mongodb一起使用?

Node.js 如何将cookie与nodejs和mongodb一起使用?,node.js,mongodb,cookies,Node.js,Mongodb,Cookies,我将nodejs(express)与mongodb一起使用,并试图弄清楚cookies是如何工作的。我目前可以让用户登录并对其进行身份验证。我如何发挥cookies的作用,如何使用cookies查询mongodb中的用户信息,并在用户登录后将其拖到下一页和下一页 目前,我有一个路由文件,它发布登录请求,然后根据成功情况重定向到userProfile页面,我希望在该页面上包含用户特定的详细信息,然后能够向用户显示其他页面,并让用户在查询时再次返回其唯一页面 更新的代码:(cookie可以按照更新的

我将nodejs(express)与mongodb一起使用,并试图弄清楚cookies是如何工作的。我目前可以让用户登录并对其进行身份验证。我如何发挥cookies的作用,如何使用cookies查询mongodb中的用户信息,并在用户登录后将其拖到下一页和下一页

目前,我有一个路由文件,它发布登录请求,然后根据成功情况重定向到userProfile页面,我希望在该页面上包含用户特定的详细信息,然后能够向用户显示其他页面,并让用户在查询时再次返回其唯一页面

更新的代码:(cookie可以按照更新的代码中的调用方式进行调用吗?)

登录后路由文件

exports.loginPost = function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err) { return next(err) }
        if (!user) { return res.redirect('loginError'); }
        req.logIn(user, function(err) {
          if (err) { return next(err); }    
          res.cookie('name', req.params.email, { expires: new Date(Date.now() + 900000), httpOnly: true });    
          return res.redirect('userProfile');
        });
  })(req, res, next);
};
先读这个

然后使用cookieparser和cookiesession

app.use(express.cookieParser('yoursecretkeyhere'));
app.use(express.cookieSession();
并将上述函数拆分为身份验证中间件方法和身份验证后处理程序

认证中间件只需要检查会话是否具有认证标志,如果没有,则重定向到登录页面。(如果这是单页应用程序的一部分,只需返回401并在浏览器中请求凭据)


然后,您的authenticate POST处理程序检查发布的用户名和密码凭据(或针对第三方api的其他凭据),并设置session.Authenticated标志,然后重定向。

尝试使用cookieParser我理解这一点,但例如,我在主app.js文件上有一个来自express的cookieParser。如何设置以及登录时必须在何处设置?我如何使用它进行查询呢?我附上我的代码,如果一个例子可以显示,这将是伟大的。我有同样的问题,因为快速文档是。。。最小的试着用谷歌搜索一下,看看例子。我不能像这样把它贴在登录帖子上:res.cookie('name',req.params.email,{expires:new Date(Date.now()+900000),httpOnly:true});我不知道我是否理解。cookieSession是一种中间件,它将添加到会话对象的任何内容存储到加密的cookie中。浏览器会在每次请求时将cookie发送到服务器,cookieSession会读取cookie并将所有值填充回会话中。你不应该把东西放在一个不加密的cookie里,它应该是防篡改的。