Ошибка входа в RESTful: возврат 401 или пользовательский ответ

Это концептуальный вопрос.

У меня есть клиентское (мобильное) приложение, которое должно поддерживать действие входа в систему против веб-службы RESTful. Поскольку веб-служба является RESTful, это означает, что клиент принимает имя пользователя / пароль от пользователя, проверяет это имя пользователя / пароль в службе, а затем просто не забывает отправить это имя пользователя / пароль со всеми последующими запросами.

Все остальные ответы в этом веб-сервисе предоставляются в формате JSON.

Вопрос в том, когда я запрашиваю веб-службу просто для того, чтобы выяснить, является ли данное имя пользователя / пароль действительным, должен ли веб-сервис всегда отвечать данными JSON, сообщающими мне, успешно или неудачно, или он должен вернуть HTTP 200 с хорошими учетными данными и HTTP 401 на плохие полномочия.

Причина, по которой я спрашиваю, состоит в том, что некоторые другие службы RESTful используют 401 для неверных учетных данных, даже когда вы просто спрашиваете, действительны ли учетные данные. Однако я понимаю, что ответы 401 представляют собой ресурс, к которому у вас не должно быть доступа без действительных учетных данных. Но ресурс входа в систему ДОЛЖЕН быть доступен любому, поскольку цель ресурса входа в систему состоит в том, чтобы сообщить вам, действительны ли ваши учетные данные.

Иными словами, мне кажется, что запрос, как:

myservice.com/this/is/a/user/action 

должен вернуть 401, если предоставлены неверные учетные данные. Но просьба вроде:

myservice.com/are/these/credentials/valid

никогда не должен возвращать 401, потому что этот конкретный URL (запрос) авторизован с действительными учетными данными или без них.

Я хотел бы услышать некоторые обоснованные мнения по этому поводу. Каков стандартный способ обработки этого, и является ли стандартный способ обработки этого логически подходящим?

Ответы на вопрос(2)

Ваш ответ на вопрос