Правильный заголовок WWW-Authenticate для провайдера OAuth - PullRequest
10 голосов
/ 01 декабря 2011

В спецификации OAuth 1.0 предлагается ответить следующим заголовком WWW-Authenticate:

WWW-Authenticate: OAuth realm="http://server.example.com/"

Целесообразно ли добавлять другие информативные данные в этот заголовок? В случае сбоя запроса на защищенный ресурс, было бы разумно включить некоторую информацию о том, почему? Такие как:

WWW-Authenticate: OAuth realm="http://server.example.com/", access token invalid

Или это противоречит цели заголовка ответа?

Ответы [ 3 ]

23 голосов
/ 24 ноября 2015

Примечание для любого, кто только что наткнулся на это: Спецификация токена носителя OAuth 2.0 добавляет атрибуты "error", "error_description" и "error_uri" в заголовок "WWW-Authenticate" для сообщения дополнительной информации об ошибке и указывает, когда их следует и не следует использовать.

например:.

 HTTP/1.1 401 Unauthorized
 WWW-Authenticate: Bearer realm="example",
                   error="invalid_token",
                   error_description="The access token expired"
7 голосов
/ 01 декабря 2011

Звучит немного сомнительно для меня.Заголовок WWW-Authenticate задается RFC , что, по-видимому, запрещает приведенный вами пример.Спецификация OAuth гласит, что вы можете включить другие поля WWW-Authenticate, как определено в RFC, а не просто прикрепить произвольные строки к концу.Я бы избегал этого, если бы не было определенного поля, которое вы могли бы изменить в своих целях.

6 голосов
/ 01 декабря 2011

Это противоречит спецификации, и если бы не было, вероятно, было бы что-то вроде:

realm="http://server.example.com", oauth_error="access token invalid"

Я бы порекомендовал использовать тело ответа для подобных вещей или, возможно, заголовок X-OAuth-Error.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...