JWT トークンを使用して angular から Symfony REST API にアクセスすると、CORS の問題に直面しています。
IIS サーバーは、ドメイン名と IP アドレスを使用してアプリケーションにアクセスするように構成されています。フロントエンドのコードは Symfony の同じディレクトリにあります。
フロントエンドはドメイン名で API を呼び出します。API がドメイン名を指しているため、JWT トークンを使用して IP アドレスからアプリケーションにアクセスすると、CORS の問題が発生します。
カーネルリスナーで以下のオプションを使用して応答ヘッダーを設定しました。
lexik/jwt-authentication-bundle を使用してトークンを生成しています
$responseHeaders->set('Access-Control-Allow-Headers', 'origin, content-type, accept,authorization');
$responseHeaders->set('Access-Control-Allow-Origin', '*');
$responseHeaders->set('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, PATCH, OPTIONS');
$responseHeaders->set('Access-Control-Allow-Credentials', true);
以下のオプションで Nelmio CORS バンドルもセットアップしました
enter code hernelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
'^/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600e
応答ヘッダー:
OPTIONS、TRACE、GET、HEAD、POST を許可
content-length
0 date
Mon, 13 Nov 2017 16:03:22 GMT public
OPTIONS, TRACE, GET, HEAD, POST server
Microsoft-IIS/10.0 X-Firefox-Spdy
h2
前もって感謝します!