RESTful HTTP API中的授权,401 WWW
我正在创建一个RESTful服务来向Web应用程序提供数据。 我有两个相关的问题。
1.如何处理未经授权的请求?
我打算用以下代码回应请求:
这是RESTful服务行为的推荐方式吗?
2. 401响应提供什么WWW-Authenticate
头文件?
我阅读了维基百科(可能不是最准确的资源,但它适用于我),401响应必须包含WWW-Authenticate
标头,但是经过进一步的搜索,我找不到任何说明此值意味着什么的资源以及什么它应该是。
我发现了几个关于这个头文件的SO问题和论坛主题,他们似乎都是关于OAuth的,建议不要使用401状态码,或者说你可以制作一些东西。
这个头文件应该包含什么正确的值?
回答你的问题:
如何处理未经授权的请求?
您描述它的方式几乎是RESTful服务的推荐方式。 据我所知,这绝对没有错。
401响应提供什么WWW-Authenticate头文件?
通常, WWW-Authenticate
标头告诉客户端服务器将接受哪种认证。 如果客户端发出未经授权的请求,这意味着他发送的请求缺少或无效的Authorization
标头,服务器将使用WWW-Authenticate
来告诉客户端他将接受哪种认证方案(即Basic,Digest或OAuth),以及什么境界。
想象一下,它就像服务器方面的某种识别问题或挑战,即类似“你是谁?”。 或者“通过以下方式提供凭证证明你是谁!”。
例如: WWW-Authenticate: Basic realm="My App"
这里服务器告诉客户他使用了一个名为Basic的认证方案。 领域只不过是一些标识服务器上受保护空间的字符串。
基于我的研究(谷歌搜索),我决定发送:Newauth realm =“使用登录令牌”。
http://greenbytes.de/tech/tc/httpauth/#unknown网站有不同auth方法的测试用例,我还没有发现任何描述'get auth token'的内容,因此我认为它是'Newauth'。
对我来说也很重要:这不会在客户端创建登录提示。
链接地址: http://www.djcxy.com/p/12455.html