2015-02-05 5 views
2

나는 각 사용하여 WebApi 서버에 인증 요청을하려고합니다.웹 API와 AngularJS와 인증 실패

이 내가 요청을 만드는 방법은 다음과 같습니다

var config = {headers: {Authorization: "Bearer " + JSON.parse($cookies.token)}}; 
var url = 'http://localhost:53889/api/Values/5'; 

$http.get(url,config).success(function(response){ 
    console.log(response); 
}) 

을 그리고 이것은 내가 인증 설정 방법은 다음과 같습니다

login: function(credentials){ 
      return $http({ 
      method: 'POST', 
      url: url + '/Token', 
      headers: {'Content-Type' : 'application/x-www.form-urlencoded'}, 
      transformRequest : function(obj){ 
       var str = []; 
       for(var p in obj){ 
        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
       } 
       return str.join("&"); 
      }, 
       data: credentials 
     }); 

var success = function(data){ 
    AuthorizationFactory.setCurrentUser(credentials.username); 
    ApiFactory.init(data["access_token"]); 
    $cookieStore.put('token', JSON.stringify(data["access_token"])); 
}; 

이 성공의 방법은 다음과 같이 호출됩니다 AuthorizationFactory.login(credentials).success(success)합니다.

하지만 매번 내가 인증 요청을 만들려고, 나는 401 오류 메시지가 표시됩니다.

헤더는 다음과 같다 : 내가 잘못 뭐하는 거지

Accept:application/json, text/plain, */* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:ro-RO,ro;q=0.8,en-US;q=0.6,en;q=0.4 
Authorization:Bearer "4N_9ScOCtFxTgNs....t" 
Cache-Control:no-cache 
Connection:keep-alive 
Cookie:.AspNet.Cookies=Rx...y0OTHrvE 
Host:localhost:53889 
Pragma:no-cache 
Referer:http://localhost:53889/app/ 
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36 
X-Access-Token:"\"4N_9ScO...XZ6t\"" 

? 내가 뭘 놓치고있어?

답변

3

Authorization 헤더에 인용 부호를 사용하지 마십시오. 그것은 다음과 같아야합니다

Authorization: Bearer your_token_here 
+1

하는 것은 쉬웠다 그. 고마워! – CrazyDog