1

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

前もって感謝します!

4

1 に答える 1