首頁  >  文章  >  web前端  >  Express+Nodejs 下實作登入攔截功能

Express+Nodejs 下實作登入攔截功能

零下一度
零下一度原創
2018-05-23 17:10:141689瀏覽

這篇文章主要介紹了Express+Nodejs 下的登入攔截實作程式碼,小編覺得挺好的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

原來一直不知道怎麼在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();
});

經過測試,成功了

以上是Express+Nodejs 下實作登入攔截功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn