express 4.X cookie session

来源:互联网 发布:淘宝平面模特兼职 编辑:程序博客网 时间:2024/04/29 14:22

1、cookie

req.cookies.XX 获取

res.cookie(name,value,{maxAge:0}) //设置cookie

maxAge 用来设置过期时间,单位为s 也就是秒而不是 ms 毫秒。

清除cookie可以设置值为undefined 

2、session

req.session  获取

req.session.XX = 设置session

app.use(session({  secret: 'keyboard cat',  resave: true,  saveUninitialized: true,  cookie: { maxAge: 1000 * 60 * 1 }// 这里的单位是ms 毫秒  设置session 存在cookie里的过期时间
  name:'tkid' //设置cookie 存储的key 名称,默认connect.sid }));

以上是session的设置,它是不持久的,保存在内存中。当node 服务重启就没有了。

当建立链接时,会先在本地cookie内写一个connect.sid。来区别session的身份。直到过期或distroy 清除。

req.session   获取例子:

cookie:   { path: '/',     _expires: 2016-08-26T10:14:16.474Z,     originalMaxAge: 60000,     httpOnly: true },  user: { userid: 1, name: 'star' } }

可以用req.session.user来获取session存储的内容。

cookie是 connect.sid 的cookie 设置项。


用req.cookies 获取例子:

{ 'connect.sid': 's:NY8JMjw_wT_kEy-tcD06XqQByERMkmFX.RpmAVBz4tbcXWHbbtWLH8YgUH6D/3z87rdfUDX+AGJ8',  user: { userid: 1, name: 'star' } }

req.cookies.user  req.cookie['connect.sid']  获取值。

用req.session.destroy(); 来清除session

对于 session 它会在cookie里设置sid来做标识。

一般会把session持久化,放在mongodb 或redis里,

并设置上过期时间。

这样在访问页面时在没登录就不会创建sid,只有在登录成功后req.session.user=  这时会在本地创建cookie sid 。在redis里保存信息。

登录后req.session 和req.cookies 和上边的类似。




0 0
原创粉丝点击