在AngularJS中,JWT授权标头未定义

时间:2016-11-18 16:27:52

标签: angularjs jwt

我正在尝试使用jwt访问api。当我使用凭据发布时,我从服务器获得id_token。我提取它,但当我尝试使用Authorization header将令牌添加到Bearer中的下一个请求时,令牌显示为undefined,因此接收500内部错误为&#34 ; JWT字符串必须包含2个句点字符。发现:0"。控制台错误显示在图片

我的代码如下:

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

1 个答案:

答案 0 :(得分:2)

当然会发生这种情况,因为您的令牌在第二次请求后返回。 在飞行中你可以像这样解决它:

waitForCompletion: true