22

404そのため、APIで409201、などのいくつかの異なるステータス ヘッダーを送信します302。今、私はで問題に直面してい401 Unauthorizedます。現在、ユーザーがログインしていない場合 (API 全体が権限管理されている場合)、またはユーザーが取得/変更される特定のリソースに対する特定のアクセス要件を満たしていない場合に送信しています。

現在、フロントエンド クライアント (jQuery/HTML アプリケーション) も制御しています401。ログインしていない場合に使用すべき明確なステータスはありますか? ヘッダーと一緒に本文コンテンツを送信するのに最適な方法はありますか?

4

2 に答える 2

33

403ユーザーがリソースへのアクセスを許可されていないことを示すために使用する必要があります。Using401は、現在使用しているのと同じように、ユーザーが資格情報を提供する必要があることを示すためのものです。401および403 ここの説明を参照してください。

于 2010-08-20T02:56:34.293 に答える
7

lazが言うように403、ユーザーを認証したときに使用する必要がありますが、ユーザーは求めていることを行う権限がありません. たとえば、リソースの GET は許可するが、DELETE や PUT は許可しない場合があります。

  • 401 は基本的に「これらの資格情報を認識できません」と表示されるため、正しくありません。
  • 「これを行うことは許可されていません」と表示されているため、403 は正しいです。

いずれの場合でも、エラー response の場合でも、応答本文には常に詳細情報が含まれている必要があります。これにより、クライアントは (埋め込みリンクを使用して) 先に進むことができます。または、処理方法に関する十分な情報を提供することによって (たとえば、「私の記録では、XXX を削除する権限がないことが示されています。システム管理者に連絡して、 FOOBAR許可」)。

于 2010-08-20T08:25:43.950 に答える