无法发送授权标头

时间:2020-02-06 19:13:50

标签: angular jwt jwt-auth

我尝试使用Angular 8 HttpClient和auth0 angular jwt将带有授权标头的请求发送到.NET core 3,但标头未设置。 服务代码 code for service

应用模块配置的代码 enter image description here

1 个答案:

答案 0 :(得分:0)

我认为您不需要外部库即可。

您应该看一下拦截器的概念:https://angular.io/api/common/http/HttpInterceptor

一个例子:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { LocalStorageService, SessionStorageService } from 'ngx-webstorage';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor(private localStorage: LocalStorageService, private sessionStorage: SessionStorageService) {}

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    const token = this.localStorage.retrieve('authenticationToken') || this.sessionStorage.retrieve('authenticationToken');
    if (!!token) {
      request = request.clone({
        setHeaders: {
          Authorization: 'Bearer ' + token
        }
      });
    }
    return next.handle(request);
  }
}