Express+Nodejs 下的登录拦截实现
博客专区 > WolfX 的博客 > 博客详情
Express+Nodejs 下的登录拦截实现
WolfX 发表于2年前
Express+Nodejs 下的登录拦截实现
  • 发表于 2年前
  • 阅读 138
  • 收藏 2
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

原来一直不知道怎么在Express+Nodejs里面添加类似于Struts2的拦截器(因为要使用登录拦截的功能)。 以前一直以为在router这块添加类似一下的转移路由控制权代码的(每个都加很麻烦)

app.get('/show', controllers.checkLogin);//登录验证
app.get('/show', controllers.showList);//实际跳转

又或者是像某些项目里面给每个controller的方法里面加以下这种验证(太繁琐了)

if (!req.session.user) {
        return res.redirect("/login");
    }

最近翻到之前使用session的代码片段,突然有如茅塞顿开啊!!

//session
app.use(function (req, res, next) {
    var err = req.flash('error');
    var success = req.flash('success');
    res.locals({
        user:req.session.user,
        navSide:req.session.navSide,
        error:err.length ? err : null,
        success:success.length ? success : null
    });
    next();
});

这尼玛不就是个拦截器吗~囧~ 稍加改造

//登录拦截器
app.use(function (req, res, next) {
    var url = req.originalUrl;
    if (url != "/login" && !req.session.user) {
        return res.redirect("/login");
    }
    next();
});

经过测试,成功了

共有 人打赏支持
WolfX
粉丝 53
博文 246
码字总数 31477
×
WolfX
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: