首页 文章

Angular 7拦截器获取本地存储值并添加到标头

提问于
浏览
0
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{

try {
      const token: any = localStorage.getItem('ibAccessToken');
      console.log('token string', token);

      if (token) {
        console.log('token if',  token)
          request = request.clone({ headers: request.headers.set('Authorization', 'Bearer ' +  token) });
      }

      if (!request.headers.has('Content-Type')) {
          request = request.clone({ headers: request.headers.set('Content-Type', 'application/json') });
      }

      request = request.clone({ headers: request.headers.set('Accept', 'application/json') });

      return next.handle(request).pipe(
          map((event: HttpEvent<any>) => {
              if (event instanceof HttpResponse) {
                  console.log('event--->>>', event);
              }
              return event;
          }));
}catch(ex){
  return ;
} }

本地存储值仅显示null . 因为拦截器第一次叫 . 请帮帮我,我该如何实现这个代码?

1 回答

  • 1
    (data.access_token).subscribe((response) => {
        // If you subscribe to access_token from some where do this
        const accessToken = response;
         // If your accessToken is not a string and if it object, do stringify other wise add the access token directly to localstorage.
         this.localStorage.setItem("ibAccessToken", JSON.stringify(accessToken));
    })
    

相关问题