我目前正在研究Symfony 2中的HTTP API,我已经为其实现了OAuth2密码凭据以进行身份验证。在身份验证时,客户端收到两个令牌,一个访问权限和一个刷新令牌。
不知何故,我需要能够通知客户端访问令牌不再有效,并且必须使用刷新令牌来获取新的访问令牌。
我已经浏览了HTTP代码列表[1],对我而言,419身份验证超时状态似乎是最合适的。但是,当我在Response
对象中使用它时,我实际上会收到500状态:
return new Response("OK", 419);
结果:
$ curl -X GET http://local.api
< HTTP/1.1 500 Internal Server Error
< Date: Thu, 23 Jan 2014 21:34:39 GMT
* Server Apache/2.4.6 (Ubuntu) is not blacklisted
< Server: Apache/2.4.6 (Ubuntu)
< X-Powered-By: PHP/5.5.3-1ubuntu2.1
< Cache-Control: no-cache
< X-Debug-Token: b7c386
< X-Debug-Token-Link: /app_dev.php/_profiler/b7c386
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
我得到的印象是Response
对象似乎不支持此代码(查看类中定义的常量列表),但是从Response
类代码本身我不能检测任何不允许我发送419的逻辑。
我目前正在回归所需的511网络身份验证,但我更喜欢使用419。我怎么能这样做?
答案 0 :(得分:-1)
查看Response constructor,如果状态代码无效,则会抛出InvalidArgumentException
异常。您将需要使用不同的状态代码(请查看Symfony中有效代码的类常量)