node cookie和session的使用

Posted 小凯全栈开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node cookie和session的使用相关的知识,希望对你有一定的参考价值。

导入模块在app.js里

1 var connect = require(‘connect‘);

在路由分发语句前加入。

1 app.use(bodyParser.json());
2 app.use(bodyParser.urlencoded());
3 app.use(cookieParser());
4 app.use(connect.session({ secret: ‘lgphp‘, key: ‘lgphp‘ ,cookie: { maxAge: 20000}}));  //session 时长为20秒,这个是以毫秒为单位,这样我们就建立一个session的会话,这是一个全局的设置
5 routes(app);

先说session ,设置session 的KV

req.session.sessname = ‘i am a sesion‘;

这样我们就设置了一个名为sessname的session变量,值就是iam a sesion,这个session的会话时长是20秒。ubuntu上打字还是不太灵活

获取session

res.send(‘session:‘ + req.session.sessname)

删除session

req.session.destroy();

判断session是否存在

if (req.session){   //判断session是否被销毁

以上session操作足够完成常用的逻辑啦

下面说cookie,我们也经常用到的。

设置cookie

1   res.cookie(‘cookiename‘,‘i am a cookie‘,{ maxAge: 20000,httpOnly:true, path:‘/‘});//cooike 时长 30 sec

获取cookies的值

var c = req.cookies.cookiename   //这是个字典对象,你可以用括号的方式获得

删除cookie,网上很多,但是好像都没用,有的是把过期时间设置为0,我试了,cookie的值没有了,但是cookie还在,用chrome查看还有的。

res.cookie(‘cookiename‘,‘null‘,{maxAge:0});

这样删除就没问题了。

判断cookie是否存在,比如做登录和权限验证什么的。cookie失效后,变成了undefined,所以我们这样判断

if (‘undefined‘ === (typeof req.cookies.cookiename)){
             res.send(‘deleted cookie‘);
         }

以上是关于node cookie和session的使用的主要内容,如果未能解决你的问题,请参考以下文章

关于node中cookie和session使用

Cookie和Session在Node.JS中的实践

Node.js身份认证,Cookie和Session的认证机制,express中使用session认证和JWT认证

node的cookie-parser和express-session

node学习之cookie和session

Node中的Cookie和Session