适用于OAuth提供程序的WWW-Authenticate标头

时间:2011-12-01 12:57:07

标签: oauth response-headers

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 个答案:

答案 0 :(得分:22)

请注意,对于任何只是绊倒的人:OAuth 2.0 bearer token spec将“错误”,“error_description”和“error_uri”属性添加到“WWW-Authenticate”标头以报告其他错误信息,并指定何时应该而且不应该使用。

E.g:

 HTTP/1.1 401 Unauthorized
 WWW-Authenticate: Bearer realm="example",
                   error="invalid_token",
                   error_description="The access token expired"

答案 1 :(得分:7)

对我来说听起来有些不确定。 WWW-Authenticate标头由an RFC指定,这似乎禁止您提供的示例。 OAuth规范说您可以包含RFC定义的其他WWW-Authenticate字段,而不是您可以将任意字符串添加到其末尾。我会避免它,除非有一个你可以扭曲到你的目的的定义字段。

答案 2 :(得分:6)

这样做符合规范,如果不是,它可能会像:

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

我建议您使用响应正文来处理这类内容,或者使用X-OAuth-Error标题。