2015-05-29 48 views
0

我想在快速框架中设置一个cookie,但它没有经过,对于我的生活我无法弄清楚为什么。相关的代码如下所示:饼干没有通过


    module.exports = function(app) { 
     return function(req, res, next) { 
     if (req.cookies.user_token) { 
      req.session.cookie.httpOnly = false 
      res.cookie('user_token', req.cookies.user_token, { domain: 'www.example.com', httpOnly: false, path: '/', maxAge: 900000 }); 
     } 
     return res.redirect('https://www.example.com/index.jsp?other_stuff=value'); 
     } 
    } 

我可以看到请求出去了,而且cookie没有设置。我已经介绍了一个调试器,并且我确定知道代码正在被击中。

我发现这个问题:

How to set cookie in node js using express framework?

此基础上,我打过电话var express = require('express'); app.use(express.cookieParser());早些时候代码,但它似乎没有任何区别。

任何人有任何想法,我哪里错了?

+0

由于'if(req.cookies.user_token){'封装了设置cookie的代码,因此您似乎在设置cookie之前检查该cookie是否存在。所以它永远不会被创建。 – Trott

+0

@特罗特:不。我正在查看该Cookie是否存在于我已在的页面上;如果是这样,我希望它为我要去的页面重新创建。我100%确定res.cookie被调用;我正在通过一个调试器来完成它。 – BlairHippo

+1

而您要重定向到的页面与设置cookie的页面位于同一个域中? – Trott

回答

1

如果重定向的域(如www.example.com)(如注释中所示)不同于尝试设置cookie的域(比如www.foo.io),那么浏览器将不会遵守该cookie。