私は新しい実験的なWebアプリケーションフレームワークを開発しており、RESTfulに注意を向けることにしました。基本を読み終えて、RESTfulを概念としてかなりよく理解しているように感じます。
システムを稼働させ、URLを使用してシステム内の「名詞」を厳密に定義し、HTTPリクエストメソッドから「動詞」を取得しました。私はjavascriptajax呼び出しを使用して、HTMLフォームでは提供できないDELETEメソッドとPUTメソッドへのアクセスを提供しています。(これらの手段は厳密にはRESTfulである必要はありませんが、「UniformInterface」要件を満たしています)。
問題は、認証によるステートレス性とキャッシュ可能性にあります。Webサイトでのユーザー認証の標準モデルには、「ログイン」認証イベントが含まれます。その後、(成功した場合)ユーザーは永続的な安全なセッションで「壁の内側」にいて、認証されていないユーザーができない後続の要求を確認して実行できます。この認証の永続性は、RESTful性を損なうようです。認証されたユーザーには、認証されていないユーザーが同じリクエストに対して表示するHTMLとは異なるHTMLが表示される可能性があるため、キャッシュとステートレスは壊れているように見えます(たとえば、ログに記録されたユーザーのサイドバーにログインフォームがある場合があります。アウトユーザー)。
www-authenticate戦略を使用して、認証を必要とする要求に対してのみユーザーを認証することは、永続的な安全なセッションの概念を含まないため、正しい方向への一歩のようです。しかし、私たち全員がWebサイトに期待するようになったことに合わせて、エンドユーザーに「ログインした」外観をどのように表現するかという問題がまだあります。
それで、現在の考えでは、HTMLでログインした装飾を許可しながら、厳密にRESTfulな方法でWebページの認証と許可を処理するための好ましい方法は何ですか?