Отличный статус HTTP для не вошедших и не вошедших авторизован в RESTful API

Так что отправьте несколько разных заголовков статуса в моем API, включая 404 , 409 , ] 201 , 302 и т. П. Теперь я Я столкнулся с проблемами с 401 Unauthorized . В настоящее время я отправляю его, если пользователь не вошел в систему (весь API управляется правами) или если пользователь не удовлетворяет определенным требованиям доступа для конкретного ресурса, который извлекается / изменяется.

Теперь я также контролирую клиент внешнего интерфейса (приложение jQuery / HTML), и я хотел бы провести различие между двумя случаями для 401 . Есть ли определенный статус, который я должен использовать, чтобы не войти в систему? Является ли лучший способ обработать его для отправки содержимого тела вместе с заголовком?

18
задан Steven 19 August 2010 в 22:29
поделиться

2 ответа

Вы должны использовать 403 чтобы указать, что пользователь не авторизован для доступа к ресурсу. Использование 401 предназначено для указания того, что пользователю необходимо предоставить учетные данные, так же, как вы используете это сейчас. См. описания 401 и 403 здесь.

25
ответ дан 30 November 2019 в 08:03
поделиться

Как говорят, вы должны использовать 403 , когда вы аутентифицировали пользователя, но у пользователя нет разрешение делать то, о чем она просит. например вы можете разрешить GET'ing для ресурса, но не DELETE или PUT.

  • 401 было бы неверным, так как в нем в основном говорится, что «Я не узнаю эти учетные данные»
  • 403 верно, поскольку говорится, что «Вам не разрешено это делать»

В любом случае, ответ тело всегда должно содержать больше информации, , даже если это ответ с ошибкой . Это позволяет клиенту выйти из ситуации, надеясь продвинуться вперед (используя встроенные ссылки) или предоставив достаточно информации о том, как действовать (например, «Мои записи указывают на то, что у вас нет разрешения на удаление XXX, обратитесь к системному администратору и попросите ФУБАР разрешение ").

5
ответ дан 30 November 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: