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