如何编写一个 Zend Framework 控制器插件来针对所有传入请求执行 HTTP 基本身份验证(或摘要)?如果没有提供身份验证详细信息(通过Authorization
标头),或者身份验证失败,我想返回 401 状态代码(而不是重定向到/login
或类似的)。(该应用程序是一个 Web 服务;它永远不会返回text/html
。)
(这个问题的一个可能更简单的重新陈述是:你如何从控制器插件返回用户定义的状态代码,并禁止所有进一步的处理?)
如何编写一个 Zend Framework 控制器插件来针对所有传入请求执行 HTTP 基本身份验证(或摘要)?如果没有提供身份验证详细信息(通过Authorization
标头),或者身份验证失败,我想返回 401 状态代码(而不是重定向到/login
或类似的)。(该应用程序是一个 Web 服务;它永远不会返回text/html
。)
(这个问题的一个可能更简单的重新陈述是:你如何从控制器插件返回用户定义的状态代码,并禁止所有进一步的处理?)
我将从Zend_Auth组件开始,然后选择Http 适配器或摘要适配器,我认为您可能希望构建插件来评估routeStartup()处的请求。
然后,您可以将错误响应放在您的默认控制器中,或者您可以构建/更改错误控制器以返回您想要的任何风格的 http 响应。
祝你好运