如何使用Angularjs访问响应头中的令牌?

时间:2016-09-22 20:28:37

标签: angularjs angular ionic-framework

我有以下代码来验证使用Ionic 2,angularjs和devise_token_auth的用户,但是如果成功登录,我会在响应的标头中收到访问令牌,而不是在json中。

authenticate(user) {
        var creds = "email=" + user.name + "&password=" + user.password;
        var headers = new Headers();
        headers.append('Content-Type', 'application/x-www-form-urlencoded');

        return new Promise(resolve => {
            this.http.post('http://localhost:3000/auth/sign_in', creds, {headers: headers}).subscribe(data => {
                if(data.json().data){
                    this.storeUserCredentials("MY TOKEN IN THE HEADER");
                    resolve(true);
                }
                else
                    resolve(false);
            });
        });
    }

但我开始研究AngularJS和离子。我不知道在标题

中访问访问令牌

2 个答案:

答案 0 :(得分:1)

这是怎样的,我们可以从$ http响应中访问响应头。

$http.post('/api').then(function(response) {
     //Accessing header
     console.log(response.headers()['access-token']);
});

您的代码有点不同。你可以试试这个。

this.http.post('http://localhost:3000/auth/sign_in', creds, {headers: headers}).subscribe(data => {
            if(data.json().data){
                this.storeUserCredentials(data.json().headers()['access-token']);
                resolve(true);
            }
            else
                resolve(false);
        });

答案 1 :(得分:1)

$scope.token=respone.headers('Authorization')此行将从响应中返回令牌。