j0n*_*0ni 36 rest http http-response-codes
我正在编写一个小应用程序,它公开了一个简单的REST-ish HTTP API.由于缺乏授权,我一直试图决定如何发出失败信号.
该应用程序没有用于身份验证的API,而是取决于是否存在包含客户端通过其他服务获取的会话令牌的cookie.该应用程序验证会话并使用通过验证过程获得的身份执行特定于应用程序的授权.客户端无法直接对此应用进行身份验证.
我的问题是用于拒绝未授权请求的明显HTTP状态代码"401 Unauthorized",是根据"WWW-Authenticate"标头指定的.见rfc2616 sec 10.4.2.
响应必须包含WWW-Authenticate头字段(第14.47节),其中包含适用于所请求资源的质询.
我不敢相信这是一个不寻常的问题.简单地重载401以包含更多一般用途是否常见?那些浏览器弹出auth/e对话框(顺便提一下,我在测试中没有看到,所以也许POST不会发生)?
底线:在这种情况下使用401是否可以,或者是否有更好的解决方案?
tva*_*son 36
通常,如果客户端可以验证并解决问题,您将发送401,但由于您没有提供在API中进行身份验证的方法,我建议您返回403错误(禁止).这不需要标头,并将向客户端指示它无法访问该服务.
返回这样的东西:
HTTP/1.1 401 Unauthorized
Location: https://example.com/auth-app/login
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29403 次 |
| 最近记录: |