2013-09-29 2 views
2

각도 -s 앱에서 인증을 위해 angular-http-auth을 사용합니다.angular-http-auth로 세션을 유지하는 방법은 무엇입니까?

$scope.login = function() { 
    var credentials = Base64.encode($scope.username + ':' + $scope.password); 
    var config = { headers: { 'Authorization': 'Basic ' + credentials } };   
    $http.get('url/to/json/user', config) 
     .success(function() { 
      $http.defaults.headers.common['Authorization'] = 'Basic ' + credentials; 
      authService.loginConfirmed(); 
      console.log('login success'); 
     }) 
     .error(function() { 
      console.log('login failed'); 
    }); 
} 

문제 (64 기수가 암호화 here에서 오는 서비스) : 여기

은 로그인 컨트롤러 내부의 로그인 기능이며 사용자가 이미되어있는 경우 로그인 한 그는이 열립니다 새 탭을 클릭하거나 페이지를 새로 고침하면 다시 로그인해야합니다.

사용자가 페이지를 새로 고치거나 외부 링크에서 오는 경우 세션을 계속 열어 둘 수 있습니까?

+0

참고 : base64는 암호화가 아니고 암호화입니다. 키없이 쉽게 되돌릴 수 있으므로 인증 정보가 난독 화되어 HTTP 인코딩과 같은 다른 인코딩 문제로부터 안전하지만 보안은 향상되지 않습니다. – JBCP

답변

3

자격 증명을 사용하여 쿠키 또는 html5 데이터 저장소를 사용하여 자격 증명을 저장하거나 base64 문자열을 사용할 수 있습니다. 그런 다음 거기에서로드하여 $ http.defaults.headers.common [ 'Authorization'] = 'Basic'+ 자격증 명으로 구문 분석 할 수 있습니다.

희망이 있습니다.

관련 문제