如何在cookie-session 1.0.2中传递cookie选项
How to pass cookie options in cookie-session 1.0.2
我正在尝试学习Node的"cookie-session"模块。https://github.com/expressjs/cookie-session
我很难理解如何传递cookie的选项。比如过期。违约似乎要一年了!
这是关于cookie选项的说明:其他选项传递给cookies.get()
和cookies.set()
,允许您控制安全性,域,路径和签名等设置。
但是我不明白!我应该需要cookie模块吗?或者我通过var session = require('cookie-session')
改变选项?我试过session.cookies.set()
,但那似乎不起作用。
我试着在"cookie-session"answers"cookies"模块中阅读源代码寻找线索,但我不知道要找什么!
简短回答
定义要在创建会话时指定的选项,如docs: https://github.com/expressjs/cookie-session所示。它们将在创建cookie时使用(包括expires
选项)。
app.use(session({
keys: ['key1', 'key2'],
secureProxy: true // if you do SSL outside of node
// more options here...
}))
长回答
使用上面的示例,当您将配置对象传入session
时,您将该对象发送到这里的函数中。这个opts
被传递,但特别地,这里存储为req.sessionOptions
。req
在创建new Session
时传入,并存储为this._ctx
。最后,当在Session
上调用save
时,这些选项将从sessionOptions
中提取出来,并在set
调用中用于cookie:
Session.prototype.save = function(){
var ctx = this._ctx;
var json = this._json || encode(this);
var opts = ctx.sessionOptions;
var name = ctx.sessionKey;
debug('save %s', json);
ctx.sessionCookies.set(name, json, opts);
};
所以你最初传入的选项在创建cookie时被传递给set
调用。
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 在jquery中为显示/隐藏设置cookie
- 像cookie这样的全局变量,它在回发后保留值,但应该为不同的实例保存不同的值(选项卡/窗口)
- 如何查找和更改 cookie 的“发送”选项
- Javascript cookie 用于保存用户首选项并使用共享首选项显示内容
- 从另一个 HTML 页面检索 cookie - 基于链接的选项选择
- 为每个选项卡单独创建 cookie
- 使用javascript获取另一个选项卡的cookie
- 使用jQuery 'cookie'在网站上保持选定的选项卡
- 会话cookie在浏览器选项卡关闭时未过期
- 如何在cookie-session 1.0.2中传递cookie选项
- 如何根据浏览器选项卡设置cookie
- 将用户首选项存储在Cookie中
- jQuery cookie,当我按F5时,我可以't注意所选的选项
- 在浏览器选项卡之间共享 Cookie,而无需在 javascript 中刷新选项卡