【Authorizationヘッダ】Bearer tokenとbasic認証は同時設定できない

Laravelでajaxを使用するとき、Bearerトークンとbasic認証を同時設定できなくて、「Authorizationヘッダは複数設定できない」というはっきりした記事をなかなか見つけられず、時間がかかってしまったので、他参考サイトとともに何かの参考になればと思いブログに残します!

試したこと

Authorizationヘッダにカンマ区切りで複数設定

Authorization: Bearer ○○○○, Basic ○○○○

送信者は、同じフィールドで複数のヘッダーフィールドを生成してはなりません(MUSTNOT)

RFC 7230 section 3.2.2 を参照

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やら、、、初心者が到底知らないようなことも詳しく書いてくれている。この機会にそういったことまで踏み込んで知っておくのもよいかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です