Правильный заголовок WWW-Authenticate для поставщика OAuth

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

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

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

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

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

3 ответов


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


Примечание Для тех, кто просто наткнулся на это: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"

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

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

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