2012-08-12 2 views
0

OAuth 인증 시스템을 구축하기 위해 여권을 사용하는 node.js 앱을 개발 중입니다. 내가 구성한 후 각 리소스로드에서 요청 개체를 통해 사용자에게 액세스 할 수 있습니다. 하지만 내 질문은 : 모든 URL을로드하기 전에 확인하는 방법 - 어떻게 app.get ('/', function (..) {...})로 정의 된 리소스 - 사용자가 로그인되어 있지 않은 경우 클라이언트를 리디렉션하면 로그인. 나는 모든 방법으로 시험을 추가하는 것으로 할 수 있지만, 내가 원하는 것은 아니다.URL을로드하기 전에 리디렉션

감사합니다.

답변

2

당신은 사용자가 로그인되어 있는지 여부를 확인하는 미들웨어를 원하는

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)으로 수행하지만 무한 리디렉션 루프를 만들지 않으려면 여분의 로직을 사용해야합니다.

+1

[connect-sure-login] (https://github.com/jaredhanson/connect-ensure-login)으로 이동하십시오. 또한 로그인 후 원래 요청한 페이지로 사용자를 되돌릴 수있는 편리한 옵션이 있습니다. –

관련 문제