2

私はこの質問に対する答えを探し回っていますが、誰もこれをしていないようです。JavaScript REST クライアントを設計していて、ログイン ページを作成したいとします。確かに、ログイン後に認証されます。

したがって、REST API への次の要求は、RESTful な方法に従ってクライアント側に保存する必要がある現在のユーザー ID に依存します。

私の質問は、Javascript を使用してこの「セッション」情報を保存する方法です。私は Cookie を調べましたが、プレーン テキストが多すぎて信頼できないようです。また、Cookie を使用して、サーバー上のユーザー情報にマップするセッション ID をそこに保存することもできますが、これは REST のステートレスの概念に違反します。

この問題を解決するための最良のアプローチはどれですか?

4

1 に答える 1

1

また、RESTful API が JavaScript クライアントによってアクセスされる、同様の種類のアーキテクチャも構築しています。

クライアント資格情報でクライアントを認証し、認証トークンを生成してクライアントに送信します。クライアントはそれを Cookie またはローカル データ ストアに保存します。このクライアントから API へのさらなるリクエストは、HTTP 認証ヘッダーを使用して送信され、ヘッダーにそのトークンが含まれます。指定されたトークンの API エンドでリクエストを承認し、認証されるとリクエストが処理されます。

サーバー側で Cookie 情報にアクセスしない限り、n まで、サーバー上のクライアントの状態を維持していないため、これが REST のステートレス原則に違反するとは思いません (ただし、サーバーにバインドしていません)。トークンを使用した認証プロセスに関しては、ここでサーバーとクライアントをバインドしているとは思いません。複数のサーバーがあり、ロード バランサーを使用しているにもかかわらず、このリクエストは任意のサーバーによって処理される可能性があるためです (Google API と同様)。

注: HTTPS プロトコルを使用してこれを行っているため、このすべての通信が確実に保護されます。

于 2013-05-05T02:37:59.303 に答える