我正在尝试让https://github.com/zfcampus/zf-oauth2与我的应用程序一起使用(主要是因为我已经安装了 apigility 并且 zf-oauth2 附带了它)。
我正在阅读最后一部分,它说要保护,我只是简单地使用以下代码(例如,在控制器的顶部):
if (!$this->server->verifyResourceRequest(OAuth2Request::createFromGlobals())) {
// Not authorized return 401 error
$this->getResponse()->setStatusCode(401);
return;
}
// where $this->server is an instance of OAuth2\Server (see the AuthController.php).
但是,必须以某种方式注入 $this->server。但是,我似乎无法找到如何以及注射什么。通过单击链接查看 AuthController.php,我找到了一个页面...
编辑:感谢 Tom 和 Ujjwal,我想我更近了一步。
在我的控制器中,现在我有以下内容:
use ZF\OAuth2\Controller\AuthController;
class BaseController extends AuthController
{
}
在我的 Module.php 中,我尝试像这样注入 OAuth2Server:
public function getServiceConfig()
{
return array(
'factories' => array(
'\Stand\Controller\BaseController' => function ($sm) {
$cls = new BaseController($sm->get('ZF\OAuth2\Service\OAuth2Server'));
return $cls;
},
)
);
}
但是,当我尝试渲染页面时,它并没有捕捉到我的注入。我明白了
可捕获的致命错误:传递给 ZF\OAuth2\Controller\AuthController::__construct() 的参数 1 必须是 OAuth2\Server 的实例
请指教!
谢谢