2016-11-18 2 views
0

Ich versuche, eine API mit JWT zugreifen. Wenn ich mit Anmeldeinformationen posten, bekomme ich die id_token vom Server. Ich extrahiere es, aber wenn ich versuche, das Token zu den nächsten Anfragen in Authorization header unter Verwendung Bearer hinzuzufügen, wird das Token als undefined angezeigt, deshalb die 500 Interner Fehler als "JWT Zeichenfolgen müssen genau 2 Perioden Zeichen enthalten. Gefunden: 0". Die Konsole Fehler wird in der Abbildung dargestelltin AngularJS, JWT Autorisierung Header ist undefined

Mein Code ist wie folgt:

angular.module('myApp', []).controller('myCtrl', function($scope, $http){ 
//$scope.tok = ''; 
$http({ 
    method : "POST", 
    url : "http://server.com/api/authenticate", 
    data: '{"username":"username","password":"password","rememberMe":true}', 
    headers:{"Content-Type": "application/json;charset=UTF-8", 
      } 
    }).then(
    function mySuccess(response){ 
     $scope.token = response.data.id_token; 
    }, function myError(response){ 
     console.log(response); 
    }); 

$http({ 
    method: "GET", 
    url: "http://server.com/api/account", 
    data: '', 
    headers:{"Authorization": "Bearer " + $scope.token, 
      "Content-Type": "application/json;charset=UTF-8"} 
}).then(
    function mySuccess(response){ 
     console.log(response); 
    }, function myError(response){ 
     console.log(response); 
    }); 

}); 

enter image description here

Antwort

2

Natürlich, was geschieht, weil Ihr Token erfolgt, nachdem Ihre zweite Anfrage zurück. On the fly können Sie es wie folgt lösen:

angular.module('myApp', []).controller('myCtrl', function($scope, $http){ 
//$scope.tok = ''; 
$http({ 
    method : "POST", 
    url : "http://server.com/api/authenticate", 
    data: '{"username":"username","password":"password","rememberMe":true}', 
    headers:{"Content-Type": "application/json;charset=UTF-8", 
      } 
    }).then(
    function mySuccess(response){ 
     $scope.token = response.data.id_token; 
     $http({ 
      method: "GET", 
      url: "http://server.com/api/account", 
      data: '', 
      headers:{"Authorization": "Bearer " + $scope.token, 
       "Content-Type": "application/json;charset=UTF-8"} 
     }).then(
      function mySuccess(response){ 
       console.log(response); 
      }, function myError(response){ 
       console.log(response); 
      }); 

     }); 
    }, function myError(response){ 
     console.log(response); 
    }); 
+0

Danke Vassilis;) –

+0

Sie sind willkommen! –

Verwandte Themen