在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
或者这与响应标题的目的相反?
答案 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
标题。