简体   繁体   English

Angular5添加JWT令牌

[英]Angular5 add jwt token

I have made the interceptor class that looks like this: 我制作了如下的拦截器类:

import {Injectable} from "@angular/core";
import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from "@angular/common/http";
import {Observable} from "rxjs/Observable";

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
    constructor() { }
    //
    intercept(req: HttpRequest<any>,
              next: HttpHandler): Observable<HttpEvent<any>> {
        const idToken = localStorage.getItem("token");
        console.log('daniel3');
        if (idToken) {
            let cloned = req.clone({
                setHeaders: {
                    Authorization: `Bearer ${idToken}`
                }
            });
            console.log('daniel4');
            return next.handle(cloned);
        }
        else {
            console.log('daniel5');
            return next.handle(req);
        }
    }
}

but this strangely works only one-time meaning adding jwt token to request, there is no some hidden magic so any leads are much welcome. 但这奇怪的是只能一次性使用,这意味着向请求添加jwt令牌,没有任何隐藏的魔法,因此非常欢迎任何线索。

There should only be one import of the HttpClientModule for the app. 该应用程序只能导入一次HttpClientModule。 Each import will create a new copy of HttpClient and the interceptor provided in a root module could be overwritten 每次导入都会创建一个新的HttpClient副本,并且根模块中提供的拦截器可能会被覆盖

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM