Правильный заголовок 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
заголовок.