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