Laravelでajaxを使用するとき、Bearerトークンとbasic認証を同時設定できなくて、「Authorizationヘッダは複数設定できない」というはっきりした記事をなかなか見つけられず、時間がかかってしまったので、他参考サイトとともに何かの参考になればと思いブログに残します!
試したこと
Authorizationヘッダにカンマ区切りで複数設定
Authorization: Bearer ○○○○, Basic ○○○○
送信者は、同じフィールドで複数のヘッダーフィールドを生成してはなりません(MUSTNOT)
URLにBasic認証を突破する方法に変更
https://username:password@www.example.com/api
多くのクライアントでは次のように、ユーザー名とパスワードを含むエンコードされた URL を使用してログインプロンプトを回避できます。
https://username:password@www.example.com/
これらの URL の使用は推奨されていません。Chrome ではセキュリティ上の理由から、URL の username:password@ 部分も削除されます。 Firefox ではサイトが実際に認証を要求するかどうかをチェックし、そうでない場合 Firefox はユーザーに「”username” というユーザー名で “www.example.com” というサイトにログインしようとしていますが、ウェブサイトは認証を必要としません。これはあなたを騙そうとしている可能性があります。」と警告します。MDN Web Docsを参照
参考サイト
記事がめちゃくちゃ丁寧で細かいところまで書かれている
RFC7235やらOAuth 2.0やら、、、初心者が到底知らないようなことも詳しく書いてくれている。この機会にそういったことまで踏み込んで知っておくのもよいかも。