私は自分のアプリケーションでグローバル認証ヘッダーを作成しています。インターセプタを使用したので、get()関数で承認ヘッダを宣言しません。 get()関数を呼び出すと、トークンを依頼するので、インターセプタを正しく実装しています。それはトークンが提供されていないと言います。私のauth.interceptorに問題はありますか?すべてのget()関数で認証ヘッダーベアラートークンを宣言する必要がありますか?リクエストが送受信されるたびにインターセプタが呼び出されたと思いますか?HttpClientインターセプタでグローバル認証ヘッダーを作成する
auth.interceptor.ts
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
private authService: AuthService;
constructor(private injector: Injector) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// Get the auth header from the service.
this.authService = this.injector.get(AuthService);
const token = this.authService.getToken();
if (token) {
req = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + token) });
}
if (!req.headers.has('Content-Type')) {
req = req.clone({ headers: req.headers.set('Content-Type', 'application/json') });
}
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
return next.handle(req);
}
}
products.component.ts
getAll() {
return this.httpClient.get<any>(this.url).map(response => response.json());
}
デバッグしようとします。コンテンツタイプかもしれない聞いたことがありません –
しかし、なぜ私は自分のアプリにログインできますか?どのように私はそれをデバッグすることができます> – Joseph
いくつかのブレークポイントを入れて、実行がここに来て、すべてが大丈夫です参照してください参照してください。もう一つ。このインターセプタをモジュールに追加したと思いますか? –