2016-09-22 58 views
1

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

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和离子。我不知道要访问标头中的访问令牌

+0

您是否尝试访问'response.access_token'?这对我有用。 –

回答

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); 
     });