在 sails.js 应用程序中设置安全 cookie
set secure cookie in sails.js app
配置sails.js设置安全cookie的方法是什么?我们正在使用 redis 来保存会话状态。 sails.js 规定的方式(而不是一些 Express 中间件选项)是需要的。最后,我希望检查 Chrome cookie 视图中的 "secure" 列以查找应用程序的 cookie:
在文档中,没有明确提到如何做到这一点:
http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.session.html
有一个 ssl
配置选项,但是使用 ssl: true
部署应用程序没有产生预期的结果:
module.exports.session = {
...
ssl: true
...
}
ssl
选项也没有记录,但我认为它与签署 cookie 有关。
编辑:在屏幕截图中,我在没有 HTTPS 的情况下从本地主机提供服务,但是这个应用程序是从使用 HTTPS 的生产服务器提供的,并且观察到相同的行为
目前似乎没有办法做到这一点。如果您在此处查看 sails.js 会话实现 (https://github.com/balderdashy/sails/blob/98522d0bc5df5e6bc30b4dc35708ae71cf4625e2/lib/hooks/session/index.js),您会发现实际上没有任何安全模式的东西:(
由于 sails 使用他们自己的会话存储实现,而不是搭载 node-client-sessions or express-sessions,解决这个问题的唯一方法(我认为)是向 sails 人员提交 PR。
对不起!
Sails 使用 express.session 来处理会话 cookie,因此您可以通过在 config/session.js
中设置 cookie: { secure: true }
来启用安全 cookie
您需要使用 HTTPS 才能快递到 set the cookie
it requires an https-enabled website, i.e., HTTPS is necessary for secure
cookies. If secure is set, and you access your site over HTTP,
the cookie will not be set.
如果您使用代表您的 Web 服务器执行 SSL 终止的代理,请通过在 config/http.js
中添加以下中间件来启用快速 trust proxy
选项
module.exports.http = {
customMiddleware: function(app) {
app.enable('trust proxy');
}
};
您可以像这样设置签名 cookie
添加名为 "chocolatechip" 的签名 cookie,其值为“Yummy:
res.cookie('chocolatechip', 'Yummy', {signed:true});
正在检索 cookie:
req.signedCookies.chocolatechip; //"Yummy"
看看风帆Documentation
配置sails.js设置安全cookie的方法是什么?我们正在使用 redis 来保存会话状态。 sails.js 规定的方式(而不是一些 Express 中间件选项)是需要的。最后,我希望检查 Chrome cookie 视图中的 "secure" 列以查找应用程序的 cookie:
在文档中,没有明确提到如何做到这一点:
http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.session.html
有一个 ssl
配置选项,但是使用 ssl: true
部署应用程序没有产生预期的结果:
module.exports.session = {
...
ssl: true
...
}
ssl
选项也没有记录,但我认为它与签署 cookie 有关。
编辑:在屏幕截图中,我在没有 HTTPS 的情况下从本地主机提供服务,但是这个应用程序是从使用 HTTPS 的生产服务器提供的,并且观察到相同的行为
目前似乎没有办法做到这一点。如果您在此处查看 sails.js 会话实现 (https://github.com/balderdashy/sails/blob/98522d0bc5df5e6bc30b4dc35708ae71cf4625e2/lib/hooks/session/index.js),您会发现实际上没有任何安全模式的东西:(
由于 sails 使用他们自己的会话存储实现,而不是搭载 node-client-sessions or express-sessions,解决这个问题的唯一方法(我认为)是向 sails 人员提交 PR。
对不起!
Sails 使用 express.session 来处理会话 cookie,因此您可以通过在 config/session.js
中设置cookie: { secure: true }
来启用安全 cookie
您需要使用 HTTPS 才能快递到 set the cookie
it requires an https-enabled website, i.e., HTTPS is necessary for secure cookies. If secure is set, and you access your site over HTTP, the cookie will not be set.
如果您使用代表您的 Web 服务器执行 SSL 终止的代理,请通过在 config/http.js
中添加以下中间件来启用快速trust proxy
选项
module.exports.http = {
customMiddleware: function(app) {
app.enable('trust proxy');
}
};
您可以像这样设置签名 cookie
添加名为 "chocolatechip" 的签名 cookie,其值为“Yummy:
res.cookie('chocolatechip', 'Yummy', {signed:true});
正在检索 cookie:
req.signedCookies.chocolatechip; //"Yummy"
看看风帆Documentation