2017-10-30 19 views
1

私はこの問題を角度のJWTトークンで持っています。次のように詳細を要求してください:screen shotangle jwt無効なトークン

私は応答に示されたトークンをコピーし、動作する郵便番号を介して要求を生成します。

角度サービスから送信されたときにこのトークンが無効になる理由は何ですか?以下

ポストマン結果:ここで

enter image description here

トークン角側を生成コードである>

import { Injectable } from '@angular/core'; 

    import { 
     HttpRequest, 
     HttpHandler, 
     HttpEvent, 
     HttpInterceptor} from '@angular/common/http'; 
    //import { AuthService } from './auth/auth.service'; 
    import { Observable } from 'rxjs/Observable'; 
    import { Http } from "@angular/http/http"; 
    import { AuthService } from "./auth.service"; 
    import { HttpClient } from "@angular/common/http"; 
    @Injectable() 
    export class TokenInterceptor implements HttpInterceptor { 
     constructor(public auth: AuthService) { } 
     intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { 

     request = request.clone({ 
      setHeaders: { 
      Authorization: `Bearer ${this.auth.getToken()}` 
      } 
     }); 
     return next.handle(request); 
     } 
    } 

    public getToken(): string { 
    return localStorage.getItem('token'); 
    } 

答えて

5

Authorizationヘッダは、このフォーマットに通常ある:

Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ 

全体を送信しようとしているようですオブジェクト。代わりにトークンフィールドのみを送信してください。

+0

これは意味があります。上記のコードに基づいてこれを行うにはどのような考えですか? –

+0

おそらく、getTokenの戻り値を 'return localStorage.getItem( 'token')。token;'に変更することで、それは私の意見ではバンド助けになるでしょう。開発ツール(アプリケーションの下にあります)を使用して、ローカルストレージの内容を確認できます。 key:tokenの内容がオブジェクト全体ではなく、タイプeyJh ...の文字列であることを確認します。トークンをバックエンドから受け取ったときに、トークンをローカルストレージに格納している可能性があります。 – MikaS

+0

私はそれを考えると、ローカル記憶域の値が文字列であれば、とにかく.tokenを追加すると助けになるとは思わない。ローカルストレージ内のトークンキーのトークンフィールドへのアクセスは、それが実際のオブジェクトであった場合にのみ機能します。 – MikaS

関連する問題