配置sails.js以设置安全cookie的方法是什么?我们使用redis来持久化会话状态。需要sails.js规定的方式(而不是一些Express中间件选项)。最后,我希望检查Chrome Cookie视图中的“安全”列以查看应用的Cookie:
在文档中,没有明确提到如何执行此操作:
http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.session.html
有一个ssl
配置选项,但使用ssl: true
部署应用程序并未产生所需的结果:
module.exports.session = {
...
ssl: true
...
}
ssl
选项也没有记录,但我认为它与签名cookie有关。
编辑:在屏幕截图中,我在没有HTTPS的情况下从localhost提供服务,但此应用程序是使用HTTPS从生产服务器提供的,并且观察到相同的行为
答案 0 :(得分:6)
Sails使用express.session来处理会话cookie,因此您可以通过在config / session.js中设置cookie: { secure: true }
来启用安全cookie
您需要使用HTTPS进行快递到set the cookie
它需要启用https的网站,即HTTPS是安全所必需的 饼干。如果设置了安全,并且您通过HTTP访问您的站点, 不会设置cookie。
如果您支持代表您的Web服务器执行SSL终止的代理,请通过在config / http.js中添加以下中间件来启用快速trust proxy
选项
module.exports.http = {
customMiddleware: function(app) {
app.enable('trust proxy');
}
};
答案 1 :(得分:0)
目前似乎无法做到这一点。如果你在这里查看sails.js会话实现(https://github.com/balderdashy/sails/blob/98522d0bc5df5e6bc30b4dc35708ae71cf4625e2/lib/hooks/session/index.js),你会发现实际上没有任何安全模式的东西:(
由于sails正在使用他们自己的会话商店实现,而不是捎带node-client-sessions或express-sessions,解决这个问题的唯一方法(我认为)就是向风帆人员提交PR
抱歉!
答案 2 :(得分:0)
您可以像这样设置签名的Cookie
添加名为" chocolatechip"的签名cookie有价值"美味:
res.cookie('chocolatechip', 'Yummy', {signed:true});
检索cookie:
req.signedCookies.chocolatechip; //"Yummy"
检查风帆Documentation