2016-11-20 2 views
0
app.controller('loginController',function($scope,$http, $window){ 
// console.log(1); 
    $scope.adminLogin = function() { 
     alert("aaaaaa"); 
     var username=$scope.username; 
     var password=$scope.password; 
     if(username=="[email protected]" && password=="admin123") 
     { 

      window.location = '/PricePredictionUI/#/DASHBOARD'; 

     } 
     else 
     { 
      $scope.message="Error"; 
      $scope.messagecolor="alert alert-danger"; 
     } 

     //window.location = '/PricePredictionUI/#/DASHBOARD'; 


     }; 
}); 

위는 내 로그인 컨트롤러입니다. 나는 angularjs에 꽤 새로 왔습니다. 새 페이지에 로그인하고 착신 할 수 있습니다. 이제 로그인 양식에 대한 세션을 유지해야합니다. 어떻게해야합니까?로그인 양식에 대한 세션을 유지하는 방법

+0

어떤 세션입니까? 하드 코드 된 이름과 passowrd를 사용하는 경우 권한 부여를 수행하는 유일한 안전한 방법 인 서버와 세션 상태가있는 서버를 통해 로그인하지 않은 것입니다. – charlietfl

답변

1

올바른 경우, 탭을 닫은 후에도 다시 열어도 인증이 필요합니다.

짧은 대답 : - window.localStorage을 사용하십시오. 로그인 시도가 성공적이면 토큰을 만들어 localstorage에 저장하고 페이지가로드 될 때마다 확인하십시오.

긴 - 짧은 답변 : - 사용자 신임 하드 코딩을 포함하지 않습니다. JWT 또는 쿠키 기반 솔루션과 같은 상태 비 저장 인증 조회. 이것들은 serveride 토큰/쿠키가 생성되어 REST 서비스 헤더를 통과하고 브라우저의 로컬 저장소에 지속되도록합니다. 나는 오버 헤드가 적기 때문에 개인적으로 JWT를 좋아한다.

희망 하시겠습니까?

편집 : - 코드 조각을 약간 업데이트 중입니다. 오식이있을 수 있습니다. Windows 리디렉션 대신 UI-Router를 사용해보십시오.

app.controller('loginController',['$scope','$http', function($scope,$http){ 
    //Check if localStorage contains authToken 
    (window.localStorage.getItem('authToken') == 'success')? 'redirect - to - your page ' : 'Go - to - login'; 
    $scope.adminLogin = function() { 
     if($scope.username=="[email protected]" && $scope.password=="admin123"){ 
      window.localStorage.setItem('authToken', 'success');  
      window.location = '/PricePredictionUI/#/DASHBOARD'; 

     }else{ 
      $scope.message="Error"; 
      $scope.messagecolor="alert alert-danger"; 
     }  
    }; 
}]); 
관련 문제