[英]set secure cookie in sails.js app
配置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从生产服务器提供的,并且观察到相同的行为
Sails使用express.session来处理会话cookie,因此您可以通过在config / session.js中设置cookie: { secure: true }
来启用安全cookie
您需要使用HTTPS for express来设置cookie
它需要启用https的网站,即安全cookie需要HTTPS。 如果设置了安全,并且您通过HTTP访问您的站点,则不会设置cookie。
如果您是代表您的Web服务器执行SSL终止的代理,并通过在config / http.js中添加以下中间件来启用快速trust proxy
选项
module.exports.http = {
customMiddleware: function(app) {
app.enable('trust proxy');
}
};
目前似乎没有办法做到这一点。 如果你看一下这里的sails.js会话实现( https://github.com/balderdashy/sails/blob/98522d0bc5df5e6bc30b4dc35708ae71cf4625e2/lib/hooks/session/index.js ),你会发现实际上没有安全模式的东西:(
由于sails正在使用他们自己的会话存储实现,而不是从节点客户端会话或快速会话中捎带,解决这个问题的唯一方法(我认为)就是向帆人员提交PR。
抱歉!
您可以像这样设置签名的cookie
添加一个名为“chocolatechip”的签名cookie,其值为“Yummy:
res.cookie('chocolatechip', 'Yummy', {signed:true});
检索cookie:
req.signedCookies.chocolatechip; //"Yummy"
查看sails 文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.