2017-02-21 7 views
0

をプロジェクトに更新した後、最終的にWebApi2がIdentityServer3とangular2-jwtで動作するようになっていました。 angular2-jwt構成ですべてがうまく動作する前に、headernameは空であり、token-getter-methodは単純にトークンを返しました。だから、最初に私は私のルート・モジュールangular2-JWT設定では、ヘッダ名を提供する必要がありましたWebApiミドルウェアからIdentityServer BearerAuthenticationを使用して、angle2-jwt

EXCEPTION: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': '' is not a valid HTTP header field name. 

答えて

1

このように見えた:空のヘッダ名を更新した後

はJavaScriptエラーの原因となった

 provideAuth({ 
     headerName: 'BearerToken', 
     headerPrefix: '', 
     tokenName: '', 
     tokenGetter:() => { 
      return JSON.parse(localStorage.getItem('bearerToken')); 
     }, 
     globalHeaders: [{'Content-Type': 'application/json'}], 
     noJwtError: true, 
     noTokenScheme: true 
    }) 

まだ動作しません。いくつかの研究の後、私はヘッダ名が 'Authorization'でなければならず、tokenNameは 'Bearer'でなければならないことを発見しました。 [OK]をクリックすると次のようになります。

provideAuth({ 
     headerName: 'Authorization', 
     headerPrefix: '', 
     tokenName: 'Bearer', 
     tokenGetter:() => { 
      return JSON.parse(localStorage.getItem('bearerToken')); 
     }, 
     globalHeaders: [{'Content-Type': 'application/json'}], 
     noJwtError: true, 
     noTokenScheme: true 
    }) 

まだAuthorize-TagのあるControllerMethodに達していません。 [OK]を、最後の試み、i「はベアラ」手動で追加するときに多分それは動作します:

 provideAuth({ 
     headerName: 'Authorization', 
     headerPrefix: '', 
     tokenName: 'Bearer', 
     tokenGetter:() => { 
      var token: string = JSON.parse(localStorage.getItem('bearerToken')); 
      return 'Bearer ' + token;     
     }, 
     globalHeaders: [{'Content-Type': 'application/json'}], 
     noJwtError: true, 
     noTokenScheme: true 
    }) 

と...ボンベの驚きを、それが働いていた...;)少し遊んでより多くの私はTOKENNAMEができることを見出し空であるか、他のものを含むことができます。

関連する問題