passport-local을 사용하여 사용자를 내 응용 프로그램에 기록합니다. 내 angularJS 컨트롤러에서 호출되는 아래 함수를 통해 로그인합니다.
$http.post('/login', $scope.user).then(function (response){
if(response.data.success){
//If successful I console.log the user data and redirect them to the main page.
console.log(response.data.user);
$location.path(response.data.redirectTo);
} else {
// Handle the error messages passed back by my express routing.
}
});
이것은 예상대로 내가 올바른 세부로 로그인하면, 다음은 사용자를 CONSOLE.LOG 다음 새 페이지로 저를 리디렉션합니다 작업.
제 질문은 어떻게 작성하여 다른 모든 페이지에서 사용자가 로그인했는지 확인하는 것입니다. 내가받는 사용자 데이터로 무엇을 사용해야합니까? 내가 얘기하고 페이지는 $ routeProvider 라우팅 아래를 사용
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/login', {
templateUrl: 'login.html',
controller: 'loginCtrl'
});
$routeProvider.when('/home', {
templateUrl: 'home.html',
controller: 'homeCtrl',
// Something to make sure the user is logged in
});
}])
내가 명시 적 라우팅을 통해이 문제를 처리하기 위해 저를 요구하고있다 읽었지만 /login
하지 않기 때문에 그건 그냥 리디렉션 루프의 원인이되는 튜토리얼의 모든 isAuthenticated
라우팅 미들웨어를 전달하십시오.
app.get('*', isAuthenticated, function(req,res){
res.sendFile("index.html");
});
function isAuthenticated(req,res,next){
if(req.isAuthenticated()){
next();
} else {
res.redirect('/login');
}
}
여기에서 앞으로 나아갈 수있는 방법에 대한 도움을 주시면 감사하겠습니다.