0

Recessを使用して単純な Web サービスを開発しようとしています。これは、使いやすく、本質的に RESTful であることを目的とした Web フレームワークです。Recess で CRUD 機能を使用するのは非常に簡単であることがわかりました。MySQL データベースにバックエンドを持つモデルを作成しましたが、REST API が既に使用可能であることがわかりました。

それは素晴らしいことですが、問題は、ユーザー認証がないことです。これにより、上記で説明した本当に優れた機能がまったく役に立たなくなります。実際のアプリケーションでは、ユーザー固有のリソースにアクセスするために認証が必要になります。たとえば、単純な「to-do」アプリケーションを開発しているとしましょう (ちなみに、私はそうではありません)。ユーザーは他の人が自分のやることリストに何を入れたかには興味がないので、サービスは正しいデータを提供するために、ユーザーが誰であるかを識別する必要があります。また、ユーザーが他の人のリソースを読み取ったり、削除したり、更新したりできないようにする必要があります。

これは通常、ログイン システムで行われます。しかし、REST API の場合、ユーザーはどのように認証されるのでしょうか? クライアントは、要求が行われるたびにユーザーの資格情報 (ユーザー名やパスワードなど) を提供する必要がありますか? どうすればそれを回避できますか?通常、Cookie を使用できますが、すべてのクライアントが必ずしも Web ブラウザーであるとは限らないため、これはおそらく適切な方法ではありません。しかし、Cookie の機能をエミュレートする場合、「Cookie」の内容をどのように送信すればよいでしょうか (通常、これは HTTP ヘッダーで行われます)。最後に、これらの問題に対するソリューションを Recess の組み込み REST 機能に統合するにはどうすればよいでしょうか?

ご覧のとおり、私は REST API の開発にかなり慣れていないので、提案や指針を歓迎します。

4

1 に答える 1

3

RESTful システムは、既存のテクノロジーを再実装するのではなく、既存のテクノロジーを活用します。また、HTTP には既にBasic Authenticationの形式で認証サポートが含まれているため、それを再利用する必要があります。これは、クライアントが資格情報を送信するために広くサポートされているメカニズムです。

はい、クライアントは各リクエストで資格情報を送信する必要があります。Cookie は、パスワードを繰り返し入力することを好まない人間のクライアントのためのものですが、ここではそうではありません。Cookie はサーバーのセッション ステートフルネスを意味するため、スケーラビリティが非常に難しくなる可能性があります。

このサイトには、おそらく RESTful 認証に関する 100 の質問があります。より人気のあるものを検索して読むことをお勧めします。

于 2012-10-05T03:32:07.700 に答える