我如何将令牌功能放在一个文件中并导入我需要的位置

时间:2019-05-21 03:40:01

标签: angular7

如何将jwt标头代码放在一个文件中,然后将其导入到我需要的任何地方,而不是在我需要的每个函数中编写它

getStaffCode(){
    var token = localStorage.getItem('token');
    if(token == undefined){
      alert ("Token error");
   }
   else{
    var token = localStorage.getItem('token');
    const requestOptions = {
      headers: new HttpHeaders({'Authorization': 'bearer ' + token}),
    }
    return this.http.get(environment.url + 'api/Staffs',requestOptions);
  }
}

2 个答案:

答案 0 :(得分:0)

为此,您可以简单地使用服务。这意味着根据服务的概念含义,我们使用服务使我们的活动变得轻松和舒适。我们也可以在Angular中实现此含义。我们使用服务来使代码更整洁,这对于防止违反关注点分离的概念非常有用。因此,首先要像这样进行有角度的服务:

   export class GetToken{

        getToken(){
             let token = localStorage.getItem('token');
             return token; 
        }    

  }

以及您需要令牌的任何地方,只需使用该服务即可。例如在ts文件中,我们有:

    constructor(private token : GetToken){}


   ngOnInit(){
     let token = this.token.getToken();


  }

我希望它对您有用。

答案 1 :(得分:0)

特别是在这种情况下,您可能需要使用http拦截器将令牌添加到每个请求,看看this article

您还可以实现响应拦截器,并从每个请求的1点开始进行控制。