nodejs的cookie验证示例(express下)

以前的方法有点质量差,现在换版本了

首先在app.js页面里面引入

var cookieParser = require('cookie-parser');
然后在下面加入

//验证
app.use(function(req, res, next) {
    //console.log(req.cookies);
    if (!req.cookies.username) {
        if (req.url == "/login" || req.url == "/loginCheck") {
            next(); //如果请求的地址是登录则通过,进行下一个请求
        } else {
            res.redirect('/login');
        };
    } else if (req.cookies.username) {
        next();
    };
});

这里是验证cookie里面是否有用户姓名,如果没有将跳转登录login页面

路由页面

router.get('/login', function(req, res, next) {
	res.render('login.ejs',{});
});


router.post('/loginCheck',function(req,res,next){
    res.cookie('username', req.body.username, { expires: new Date(Date.now() + 900000), httpOnly: true });
    res.redirect("/backview");
});


cookie的设置

res.cookie(name, value [, options]);
属性设置

name: 类型为String
value: 类型为String和Object,如果是Object会在cookie.serialize()之前自动调用JSON.stringify对其进行处理
Option: 类型为对象,可使用的属性如下

domain:cookie在什么域名下有效,类型为String,。默认为网站域名
expires: cookie过期时间,类型为Date。如果没有设置或者设置为0,那么该cookie只在这个这个session有效,即关闭浏览器后,这个cookie会被浏览器删除。
httpOnly: 只能被web server访问,类型Boolean。
maxAge: 实现expires的功能,设置cookie过期的时间,类型为String,指明从现在开始,多少毫秒以后,cookie到期。
path: cookie在什么路径下有效,默认为'/',类型为String
secure:只能被HTTPS使用,类型Boolean,默认为false
signed:使用签名,类型Boolean,默认为false。`express会使用req.secret来完成签名,需要cookie-parser配合使用`


清除cookie

res.clearCookie(name [, options]);





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值