2017-02-13 5 views
0

私はjwt認証を使用してエクスプレス/ノードサーバに接続するangular2アプリケーションを持っています。angular2-jwtにヘッダの承認がありません

私はこの

getQuestions(): Observable<any> { 
    return this.authHttp 
    .get(`${this.settings.api}/questions`) 
    .map((response: Response) => response.json()); 
} 

どこのようにそれを使用する私のHTTP呼び出しのために、私はangular2-JWTを使用していて、これはapp.module.ts

export function getAuthHttp(http) { 
    return new AuthHttp(new AuthConfig({ 
    globalHeaders: [{'Accept': 'application/json'}], 
    tokenName: 'my_token', 
    tokenGetter: (() => localStorage.getItem('my_token')), 
    }), http); 
} 

の私の構成で、 this.settings.apiは認証されたURLです。

これは、これは私の以前のPHPサーバーでうまくいきました。 ノードで新しいサーバーを使用するためのURLを変更しましたが、トークンがヘッダーに追加されていないため、呼び出しが失敗しています。

Accept:*/* 
Accept-Encoding:gzip, deflate, sdch, br 
Accept-Language:en,es-ES;q=0.8,es;q=0.6 
Access-Control-Request-Headers:authorization 
Access-Control-Request-Method:GET 
Cache-Control:no-cache 
Connection:keep-alive 
Host:localhost:3050 
Origin:http://evil.com/ 
Pragma:no-cache 
Referer:http://localhost:8100/ 
User-Agent:... 

私は間違っていないよ場合は、そこにあるAuthorization: Bearer tokenする必要がありますが、それが欠けている:私はクロームコンソールで、私はこれを見るリクエストのヘッダをチェックし

AuthHttpの取得時にトークンを取得して動作しているかどうかを確認したので、トークンが存在し、アクセス可能です。

アイデア? おかげで、私は新しいノードは自分のマシンであるのに対し、私の古いPHPのサーバは、別のマシンにあったように、これは、関連CORSかもしれないと考え始めています

EDIT。 それでもかまいませんか?その場合、それを修正するには?

+0

サーバーにコーズリクエストを送信する –

+0

これを行う方法がわかりません。これはサーバーまたはフロントエンドで設定するものですか?または両方? – David

+0

サーバーはコルレス要求 –

答えて

0

誰かがここにいる場合は、Express用のライブラリを使用して解決しました。

https://www.npmjs.com/package/cors

使いやすい、ちょうど私のノードサーバのいずれかのミドルウェア前app.use(cors());を追加しました。

関連する問題