node.js制作一個簡單的登錄攔截器
攔截器在web開發(fā)中隨處可見,比如站點的管理后臺,不說所有人都能進入,所以就需要做一個攔截器并友好的跳轉(zhuǎn)到提示頁.
下面我們簡單實現(xiàn)一種,判斷用戶是否登錄成功,登錄不成功的用戶自動重定向到登錄頁面.
首先我們實現(xiàn)一個過濾器
exports.checkAuth=function(req, res, next) {
var token = req.signedCookies.token;
if (token && req.session.user && req.session.user.token === token)
next();
else if (token) {
//if invalid token or no session, should rebuild
var authInfo = user.getAuthInfo(token);
if (authInfo && authInfo.isAuth) {
req.session.user = {
userID: authInfo.userID,
userName: authInfo.userName,
isAuth: authInfo.isAuth,
token: token
}
next();
} else
res.redirect('/user/login');
} else
res.redirect('/user/login');
}
然后定義路由,并加入過濾器
module.exports = function (app) {
app.get('/user/blogList',pageAdmin.checkAuth, pageAdmin.pageList);
app.all('/user/post',pageAdmin.checkAuth, pageAdmin.pagePost);
}
上面的路由定義接收3個參數(shù),第一個是 請求的url路徑,第二個是過濾器,如果滿足過濾器將下一步進入路由處理函數(shù),如果不滿足將不會走到后面的路由定義函數(shù)里.
相關(guān)文章
nodejs的http和https下載遠程資源post數(shù)據(jù)實例
這篇文章主要為大家介紹了nodejs的http和https下載遠程資源post數(shù)據(jù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
Express URL跳轉(zhuǎn)(重定向)的實現(xiàn)方法
Express是一個基于Node.js實現(xiàn)的Web框架,其響應(yīng)HTTP請求的response對象中有兩個用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實現(xiàn)URL的301或302重定向。2017-04-04
前端常見面試題之a(chǎn)sync/await和promise的區(qū)別
async/await是異步代碼的新方式,以前的方法有回調(diào)函數(shù)和Promise,下面這篇文章主要給大家介紹了關(guān)于前端常見面試題之a(chǎn)sync/await和promise區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07
node.js中的http.response.getHeader方法使用說明
這篇文章主要介紹了node.js中的http.response.getHeader方法使用說明,本文介紹了http.response.getHeader的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12
詳解Node.js amqplib 連接 Rabbit MQ最佳實踐
這篇文章主要介紹了詳解Node.js amqplib 連接 Rabbit MQ最佳實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Node.js操作MongoDB數(shù)據(jù)庫實例分析
這篇文章主要介紹了Node.js操作MongoDB數(shù)據(jù)庫,結(jié)合實例形式分析了node.js連接MongoDB數(shù)據(jù)庫以及增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01

