OAuth提供程序的正确WWW身份验证标头

OAuth提供程序的正确WWW身份验证标头,oauth,response-headers,Oauth,Response Headers,在中,建议使用以下WWW Authenticate标头进行响应: WWW-Authenticate: OAuth realm="http://server.example.com/" 是否适合在此标题中添加任何其他信息性数据?如果对受保护资源的请求失败,是否应该包含一些关于原因的信息?例如: WWW-Authenticate: OAuth realm="http://server.example.com/", access token invalid 或者这与响应标题的目的相反?这样做是违反

在中,建议使用以下WWW Authenticate标头进行响应:

WWW-Authenticate: OAuth realm="http://server.example.com/"
是否适合在此标题中添加任何其他信息性数据?如果对受保护资源的请求失败,是否应该包含一些关于原因的信息?例如:

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

或者这与响应标题的目的相反?

这样做是违反规范的,如果不是这样,可能会类似于:

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

我建议使用响应体来处理类似的事情,或者使用
X-OAuth-Error
标题。

听起来有点可疑。
WWW-Authenticate
头由指定,这似乎禁止了您给出的示例。OAuth规范说,您可以包括RFC定义的其他
WWW-Authenticate
字段,而不是在其末尾添加任意字符串。我会避免使用它,除非有一个定义的字段可以用于您的目的。

请注意,对于刚刚遇到这个问题的人:在“WWW Authenticate”标题中添加“error”、“error\u description”和“error\u uri”属性,用于报告其他错误信息,并指定何时应该使用和不应该使用它们

例如:


你和Tom的答案大致相似,但我会检查你的答案,因为它包含了相关RFC的链接。谢谢。在这种情况下,我会投票支持汤姆的回答,因为我们在同一分钟内回答了。谢谢,你当然是对的。我现在已经为这些类型的消息使用了响应主体。然而,有些库似乎希望从标题中获得更多的信息。不过,它们的实施可能很差。
 HTTP/1.1 401 Unauthorized
 WWW-Authenticate: Bearer realm="example",
                   error="invalid_token",
                   error_description="The access token expired"