2016-08-03 6 views
1

백엔드에서 Play REST 서비스와 함께 AngularJS를 사용하고 있으며 두 개념에 상당히 익숙합니다. 기본 인증 헤더를 단 한 곳에서만 쓸 수있는 방법이 있는지 알고 싶습니다. 그래서 Angular가 작성한 모든 http 요청에 기본적으로 추가됩니다.AngularJS - 모든 http 요청에 적용되는 공통 기본 인증 헤더 설정

지금 당장 모든 요청이 시작될 때이 줄을 추가하겠습니다.

$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode(username + ':' + password); 

더 쉬운 코드 유지 관리를 위해 여러 위치 대신 하나의 위치에 나타나길 원합니다. 미리 감사드립니다.

답변

2

당신은 당신의 대답에 대한 귀하의 angular.config

var app = angular.module(); 
app.config(['$httpProvider', function($httpProvier){ 

    $httpProvider.interceptors.push(function(){ 

    return { 
    request: function(config) { 
     config.headers.Authorization = YOUR_AUTHORIZATION_HEADER; 
     return config; 
    } 
    } 

    }); 

}]); 
+0

감사 @Robin에 $의 HTTP 인터셉터를 사용하여이 작업을 수행 할 수 있습니다. 전체 예제를 보여 주실 수 있습니까? –

+0

다음은 프로젝트에 사용하는 코드입니다. 루프백 (www.loopback.io)을 사용하여 로그인하고, 루프백은 토큰을 반환하고 응답시 localStorage에 저장합니다. 요청시 승인 헤더에 토큰을 추가하면 다음과 같이 승인됩니다 .-) http://pastebin.com/Xr69e4BV –

+1

Gotcha. 나는 내 물건을 적절하게 추가하고 작동합니다 :) 정말 고마워요! @남자 이름 –