これは概念的な質問です。
RESTful Webサービスに対するログインアクションをサポートする必要があるクライアント(モバイル)アプリケーションがあります。WebサービスはRESTfulであるため、これはクライアントがユーザーからユーザー名/パスワードを受け入れ、そのユーザー名/パスワードをサービスで検証し、その後のすべての要求でそのユーザー名/パスワードを送信することを覚えていることになります。
このWebサービスの他のすべての応答は、JSON形式で提供されます。
問題は、特定のユーザー名/パスワードが有効かどうかを単に確認するためにWebサービスにクエリを実行する場合、Webサービスが常にJSONデータで応答して成功または失敗を通知するか、または適切な資格情報とHTTPでHTTP 200を返すかです。資格情報が不適切な場合は401。
私が尋ねる理由は、他の一部のRESTfulサービスは、資格情報が有効かどうかを尋ねているだけの場合でも、不正な資格情報に401を使用するためです。ただし、401応答についての私の理解は、それらは有効な資格情報なしではアクセスできないはずのリソースを表すということです。ただし、ログインリソースの目的はすべて、資格情報が有効かどうかを通知することなので、ログインリソースはだれでもアクセスできる必要があります(SHOULD)。
別の言い方をすれば、次のようなリクエストのようです。
myservice.com/this/is/a/user/action
不正な認証情報が提供された場合は401を返します。しかし、次のようなリクエスト:
myservice.com/are/these/credentials/valid
その特定のURL(要求)は有効な資格情報の有無にかかわらず許可されるため、401を返すことはありません。
これについて、正当化された意見がいくつかあります。これを処理する標準的な方法は何ですか?これを論理的に適切に処理する標準的な方法は何ですか?