1

我正在尝试让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 的实例

请指教!

谢谢

4

0 回答 0