0
私のAngular 4アプリケーションにHttpInterceptorがあり、かなりうまくいきました。しかし、私はここにも達成したい何かが利用可能な場合JSONウェブトークンを注入することであるが、私はそれを行うには正しい方法を発見していない、以下のコードを確認してください。HTTPリクエストに認証ヘッダーを追加する - 角度4
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から取得する代わりに、ハードコードされた文字列を渡そうとしました。ここで
ありがとう!これはAngular 4の実装ですか?それは、タイプ '()=> any'の 'url'が欠けていると私に伝えます。それでも、setHeaders:{ [headerName]: '$ {authScheme} $ {token} ' }をコードに統合しましたが、依然として電話でトークンが表示されません。 – Multitut
あなたの警告はわかりません。私のコードは、角度4.3.5の作業コードからコピーされたコピーです。インターセプタが正しくロードされていますか?おそらく、console.logをチェックしてください。 – jlareau
他のすべてが正しく動作しています。私の角バージョンを確認しました。また4.3.5です。あなたの完全な例を提供してください? – Multitut