首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HTTP请求上附加身份验证头- Angular 4

在HTTP请求上附加身份验证头- Angular 4
EN

Stack Overflow用户
提问于 2017-08-25 22:19:58
回答 1查看 77关注 0票数 0

我在我的Angular 4应用程序上有一个HttpInterceptor,运行得很好。但我也想在这里实现一件事,就是在可用的时候注入一个JSON web令牌,但我还没有找到正确的方法,请检查下面的代码:

代码语言:javascript
复制
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';
import {Observable} from "rxjs";
import {ToasterService} from "angular2-toaster";
import 'rxjs/add/operator/do';

@Injectable()
export class GobaeInterceptor implements HttpInterceptor {
    constructor(private toasterService: ToasterService){
    }
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        next.handle(req).subscribe(event => {
                if (event instanceof HttpResponse) {
                    if (localStorage.getItem('Token')) {
                        //THIS ISN'T WORKING:
                        event.headers.append('authentication', `${localStorage.getItem('Token')}`);
                    }
                    let response = event.body;
                    if(response.Error){
                        this.toasterService.pop('error', 'Error '+response.Code, response.Message);
                    }
                }
            }, error => {console.log(error)});
        return next.handle(req);
    }
}

它没有出现任何错误,但它也没有设置它(我检查了网络选项卡上的请求)。另外,我尝试传递一个硬编码的字符串,而不是从localStorage获取它,结果相同。

EN

回答 1

Stack Overflow用户

发布于 2017-08-25 22:26:53

我是这样做的:

代码语言:javascript
复制
export class JWTInterceptor implements HttpInterceptor {

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

        let headerName: string = 'Authorization';

        let authScheme: string = 'Bearer ';

        let token: string = localStorage.getItem('Token');

        return next.handle(() => {
            return request.clone({
                setHeaders: {
                    [headerName]: `${authScheme}${token}`
                }
            });
        });

    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45883498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档