URIはさまざまな部分で構成されており、そのうちの1つは権限部分であり、オプションのusername:password
要素を特徴とすることができます。
完全なスキームは次のとおりです。
scheme://username:password@domain:port/path?query_string#fragment_id
このようにして、REST APIはステートレスのままになります[セッションにデータを保存するなど、以前のアプリの状態に依存しません]。ただし、ルートを明示的に使用するのではなく、基本HTTP認証username:password@stuff
に依存することをお勧めします。これにより、クレデンシャルは少なくともBase64でエンコードされて送信されます。
編集:今あなたが尋ねているBasicAuthについての簡単なメモ-物事はこのようになります:
- あなたはにリクエストをし
http://johndoe:12345@service/api/foo/bar
ます;
- クレデンシャルは良いですか?わかりました、あなた
200 OK
は適切な体で反応を得ます。
- 彼らではないですか?
401 Unauthorized
応答があります。
後者の場合、ログインポップアップでユーザーにプロンプトを表示するのはブラウザ[またはリクエストを実行する他のプログラム/スクリプト]です。
通常、ブラウザは、毎回要求しないようにクレデンシャルをキャッシュするように要求しますが、これは、クレデンシャルが送信されないことを意味するわけではありません。保護されたリソースへのすべての要求がそのようなヘッダーで示されるだけです。
Authorization Basic base64encode(username:password)
base64encode
文字列をエンコードするカスタムの方法はどこにありますかusername:password
。