0
我正在開發一個node.js應用程序,我正在使用護照來構建OAuth身份驗證系統。配置完成後,我可以通過每個資源負載中的請求對象訪問該用戶。但我的問題是:如何在每個URL負載之前檢查 - 使用app.get('/',function(..){...})定義的資源 - 如果用戶被鎖定並重定向客戶端loged。我可以在每種方法中添加一個測試,但這不是我想要的。在加載URL之前重定向
謝謝!
我正在開發一個node.js應用程序,我正在使用護照來構建OAuth身份驗證系統。配置完成後,我可以通過每個資源負載中的請求對象訪問該用戶。但我的問題是:如何在每個URL負載之前檢查 - 使用app.get('/',function(..){...})定義的資源 - 如果用戶被鎖定並重定向客戶端loged。我可以在每種方法中添加一個測試,但這不是我想要的。在加載URL之前重定向
謝謝!
你要來檢查的用戶是否登錄中間件
isAuthenticated = function (req, res, next) {
if (req.user)
return next(); // All good, let the route handler process the request.
else
res.redirect('/login'); // Not logged in.
}
,並使用它的每一個需要先登錄路線:
app.get('/something', isAuthenticated, function (req, res) {
// Only in here if the user is authenticated.
});
您也可以使用中間件在每個路由上,通過做app.use(isAuthenticated)
,但你需要在方法中有額外的邏輯來創建無限重定向循環到/login
等。
我打包了這個功能ty轉換爲[connect-ensure-login](https://github.com/jaredhanson/connect-ensure-login)。它還具有方便的選項,可以讓用戶登錄後返回原先請求的頁面。 – 2012-08-13 16:57:43