0

RESTfulアプリケーションでは、2つのリクエスト間で状態が維持されません。同じユーザーから送信された場合でも、各リクエストは完全に新しいリクエストとして扱われます。つまり、セッションはありません。

その場合、ユーザーログイン情報はRESTアプリケーションによってどのように処理されますか?

  1. それは、ログインが成功した後、サーバーがセキュリティトークンを生成してクライアントに送信し、クライアントがその後のすべての要求に対してそれを送り返すということですか?
  2. 上記が当てはまる場合、セキュリティトークンはサーバーのどこに保存されますか?データベース?(覚えておいてください:セッションはありません)。
4

2 に答える 2

1

ログインが成功した後、サーバーはセキュリティトークンを生成してクライアントに送信し、クライアントはその後のすべてのリクエストに対してそれを送り返しますか? 上記が当てはまる場合、セキュリティ トークンはサーバーのどこに保存されますか? データベース?(覚えておいてください:セッションはありません)。

うーん。サーバー側のデータベースからそのトークンに関連付けられた情報を取得するためだけに、後続の各リクエストで送り返されるトークンをクライアントに送信しますか? いわゆるセッションです。データベースではなくファイルに情報を保存することを除けば、これはまさに PHP セッションが行うことです。セッションを再作成しています。

とにかく、「セッションなし、状態なし」というマントラは過大評価されており、あまり実用的ではないと思います。ユーザーを識別し、(一部の) データをそのユーザーに関連付けることができるように、トークンを含む単純な Cookie を保存しても問題ないと思います。とにかく、アプリケーションの状態 (ユーザーが以前に何をしたか、現在何をしているかなど) を保存しないことが最も重要だと思います。

于 2012-01-19T10:23:28.987 に答える
0

または、すべてをトークンで暗号化し、各リクエストでそのトークンから名前、タイムスタンプなどのすべてのユーザー情報を取得できます。

サーバーが知る必要がある唯一のことは、エンコード/デコードアルゴリズムです。

さらに良いことに、サーバーは認証サービス (完全に独立したボックスである可能性があります) を呼び出して、ユーザーを認証および承認できます。

シンプル イズ グッド !

于 2012-08-23T00:44:35.923 に答える