Web Apiのバックエンドを持つSPAがあります。 api呼び出しはヘッダー内のJWTで認証されます。私が解決しようとしている問題は、特定のAPI呼び出しをXHRではなく、window.open
を使って呼び出す方法です。私は、コールに先立ってトークンをクッキーに保存し、このクッキーをただ一つのルートで傍受し、それをヘッダーに入れるミドルウェアを作成することでこれを解決しました。そのため、JWTの認証ミドルウェアはそのことを行うことができます。このApiコールはGETルートなので、XSRの問題には関心がありません。 この「ハック」には他の問題がありますか?CookieでJWTで保護されたApiを呼び出す
背景のビット: apiコールがpdfストリームを返送しています。私は新しいタブでそれを開くことができます。問題ありません。しかし、私はあらゆる種類のブラウザに特有の問題に直面しています - Edge/IEではブロブを開くことができません。 Chrome、Safariにはポップアップを許可する設定が必要です... AdBlockが存在する可能性があります。ポップアップブロッキングにはFileSaver.jsも含まれています。一方、URLを開くだけで例外なくどこでも動作します。聴衆(コンピュータの文盲がほとんど)では、私はこれを最善の解決策のように思っています。
少し背景があると、それが明確になります。私は質問に –
を追加しました。あなたのケースでは、URLパラメータを使ってアクセストークンを渡す方がはるかに良い解決策になると思います。 –