2014-01-14 4 views
0

현재 authenticaton에 대해 passportjs를 사용 중입니다.angularjs 및 passportjs 사용시 인증

내가 URL을 브라우저에 입력하면 사용자가 인증되었는지 확인해야 할 단계에 걸쳐 온/I는 다음과 가진 passportja의 예를 사용하고 있습니다 : 내가 사용하고

app.get('/admin', ensureAuthenticated, function(req, res){ 
console.log('get admin'); 
res.render('admin', { user: req.user }); 
}); 
function ensureAuthenticated(req, res, next) { 
if (req.isAuthenticated()) { return next(); } 
res.redirect('/login') 
} 

을 라우팅을위한 angularjs 그래서 내 get 작동하지 않는 및 인증을 실행합니다.

어떻게 구현해야합니까?

답변

0

AngularJS를 사용하면 템플릿 표시를 사용자에게만 제한해야합니다.

그래서, 우리가 당신 AngularJS와에 다음 코드가 있다고 가정 해 봅시다 :

$routeProvider.when('/admin', { 
    templateUrl: '/partials/admin-page.html' 
}); 

사용자가 /admin 경로를 시도, AngularJS와는 템플릿 /partials/admin-page.html을 요청합니다.

따라서, 귀하의 nodeJs 서버에서, 당신은 다음 코드를 구현 :

app.get('/partials/admin-page.html', ensureAuthenticated, function (req, res) { 
    res.render('admin', { user: req.user}); 
}); 
+0

안녕하세요 제안을 시도했지만 결코 app.get에 도착합니다. URL이 틀림 없습니다. – tjhack

+0

또한 차이점이 있는지는 모르겠지만 앱 폴더에보기를 포함한 모든 것을 포함하는 클라이언트 측에 yeoman을 사용했습니다. server.js 파일은 상위 레벨에 있습니다. – tjhack