0

jwt 認証を使用して Express/Node サーバーに接続する angular2 アプリケーションがあります。

私は 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);
}

そして、私のhttp呼び出しでは、このように使用します

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

ここで、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に関連している可能性があると考え始めています。それはそれでしょうか?その場合、どのように修正しますか?

4

1 に答える 1