express中登录、退出、设置Cookie以及cookie-parser简单使用

在使用express要完成一个登录功能,简单使用了中间件cookie-parser。

1. 下载cookie-parser

npm i cookie-parser

2.在 app.js 中引用cookie-parser

const cookieParser = require('cookie-parser')

//不使用签名
app.use(cookieParser())

//若需要使用签名,需要指定一个secret  加密 Cookie
app.use(cookieParser('123456'))

//上面两种折一即可

3.在登录的路由中进行设置,如果登录成功,我们就将用户名存在Cookie中:

//findByNP是我自己为User模式封装的一个方法,其作用就是通过用户名和密码来查找用户,如果找到了就返回用户的信息 
User.findByNP(obj,function(err,data){
        //如果登录成功,我们就设置Cookie
        if(data){
             //设置cookie ,其中maxAge是为cookie设置一个生命周期60000000ms后会失效,即需要重新登录
            res.cookie("user",req.body.username, {maxAge: 60000000 , httpOnly: false,signed:true});
            res.redirect('/')
        }else{
            return  res.status(500).send('Server error.')
        }
    })

4.当上述的方法执行成功后,我们就可以在浏览器的控制台中找到相关的cookie信息。

5.如果我们需要登录后才能访问除login.html之外的所有页面,那么我们可以在app.js中的路由代码之前添加以下代码:

//  检测是否登录
app.use(function(req, res, next) {
    var url = req.url;
    // 判断不拦截的路由 出/login和/之外的都拦截
    if (url != '/login' && !req.signedCookies.user && url != '/') {
        res.redirect('/login')  
        return
    }
    //如果登录过,我们就执行下一个中间件
    next();
});

6.退出登录时,清除cookie

router.get('/logout', function (req,res,next){ 
    //删除Cookie  
    res.clearCookie('user')
    //回到/login路由
    res.redirect('/login');
})

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值