node.js制作一個簡單的登錄攔截器
攔截器在web開發(fā)中隨處可見,比如站點(diǎn)的管理后臺,不說所有人都能進(jìn)入,所以就需要做一個攔截器并友好的跳轉(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路徑,第二個是過濾器,如果滿足過濾器將下一步進(jìn)入路由處理函數(shù),如果不滿足將不會走到后面的路由定義函數(shù)里.
相關(guān)文章
詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南
這篇文章主要介紹了詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01webpack打包、編譯、熱更新Node內(nèi)存不足問題解決
Webpack是現(xiàn)在主流的功能強(qiáng)大的模塊化打包工具,在使用Webpack時,如果不注意性能優(yōu)化,有非常大的可能會產(chǎn)生性能問題,下面這篇文章主要給大家介紹了關(guān)于webpack打包、編譯、熱更新Node內(nèi)存不足問題解決的相關(guān)資料,需要的朋友可以參考下2023-03-03輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請求
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請求,本文告訴你如何實現(xiàn)在node.js中處理POST請求,需要的朋友可以參考下2014-12-12從零學(xué)習(xí)node.js之express入門(六)
相信大家都知道Express是一個簡潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具。下面這篇文章主要介紹了node.js中express的入門知識,需要的朋友可以參考下。2017-02-02Node.js上傳文件功能之服務(wù)端如何獲取文件上傳進(jìn)度
這篇文章主要介紹如何利用progress-stream獲取文件上傳進(jìn)度,以及該組件使用過程中的注意事項2018-02-02