Zend framework2 ZF2 ZfcUser强制登录

Zend framework2 ZF2 ZfcUser强制登录,zend-framework2,php-5.3,zfcuser,Zend Framework2,Php 5.3,Zfcuser,我有一个ZF2模块ZfcUser设置 注册和登录表单工作正常。我制作了一个自定义模块来连接Linkedin并获取用户信息,然后在数据库中注册用户数据 注册部分已经完成,但我面临的问题是,我需要使用数据库中的数据登录用户(我有关于用户的所有信息,所以我知道应该登录哪个用户),但是我找不到让ZfcUser使用PHP而不是登录表单登录特定用户的方法 我不擅长适配器和\Zend\Authentication。如果有任何帮助或指示,我将不胜感激 我试图查看ZfcUser控制器中的登录过程,但它让我更困惑,

我有一个ZF2模块ZfcUser设置

注册和登录表单工作正常。我制作了一个自定义模块来连接Linkedin并获取用户信息,然后在数据库中注册用户数据

注册部分已经完成,但我面临的问题是,我需要使用数据库中的数据登录用户(我有关于用户的所有信息,所以我知道应该登录哪个用户),但是我找不到让ZfcUser使用PHP而不是登录表单登录特定用户的方法

我不擅长适配器和\Zend\Authentication。如果有任何帮助或指示,我将不胜感激

我试图查看ZfcUser控制器中的登录过程,但它让我更困惑,而不是帮助我

我也试着在谷歌上寻找答案,但在这个话题上我什么也没找到

如果可能,我希望“强制登录过程”在ZfcUser模块之外

在查看ZfcUser控制器几个小时后,我成功地构建了一个方法来实现我想要的功能

/**
* Change the currently logged user
* @param integer $user_id
*/
public function setLoggedUser($user_id) {
 $storage = new \Zend\Session\Container('Zend_Auth');
 $storage->storage = $user_id;
}

直接在存储上设置用户id有一些缺点。如果使用另一个存储引擎,它(显然)将不起作用。在ZFCUser的
AuthService
上注册的事件将不会执行

我将通过使用自定义身份验证适配器来解决此问题。可以通过以下方式从控制器调用此适配器:

$this->zfcUserAuthentication()->getAuthService()->authenticate(new ForceLogin($user));
实现如下所示:

class ForceLogin implements Zend\Authentication\Adapter\AdapterInterface
{
    /**
     * @var UserInterface
     */
    protected $user;

    /**
     * @param $user
     */
    function __construct($user)
    {
        $this->user = $user;
    }

    public function authenticate()
    {
        return new Zend\Authentication\Result(
            Result::SUCCESS,
            $this->getUser()->getId()
        );
    }
}

直接在存储上设置用户id有一些缺点。如果使用另一个存储引擎,它(显然)将不起作用。在ZFCUser的
AuthService
上注册的事件将不会执行

我将通过使用自定义身份验证适配器来解决此问题。可以通过以下方式从控制器调用此适配器:

$this->zfcUserAuthentication()->getAuthService()->authenticate(new ForceLogin($user));
实现如下所示:

class ForceLogin implements Zend\Authentication\Adapter\AdapterInterface
{
    /**
     * @var UserInterface
     */
    protected $user;

    /**
     * @param $user
     */
    function __construct($user)
    {
        $this->user = $user;
    }

    public function authenticate()
    {
        return new Zend\Authentication\Result(
            Result::SUCCESS,
            $this->getUser()->getId()
        );
    }
}

直接在存储上设置用户id有一些缺点。如果使用另一个存储引擎,它(显然)将不起作用。在ZFCUser的
AuthService
上注册的事件将不会执行

我将通过使用自定义身份验证适配器来解决此问题。可以通过以下方式从控制器调用此适配器:

$this->zfcUserAuthentication()->getAuthService()->authenticate(new ForceLogin($user));
实现如下所示:

class ForceLogin implements Zend\Authentication\Adapter\AdapterInterface
{
    /**
     * @var UserInterface
     */
    protected $user;

    /**
     * @param $user
     */
    function __construct($user)
    {
        $this->user = $user;
    }

    public function authenticate()
    {
        return new Zend\Authentication\Result(
            Result::SUCCESS,
            $this->getUser()->getId()
        );
    }
}

直接在存储上设置用户id有一些缺点。如果使用另一个存储引擎,它(显然)将不起作用。在ZFCUser的
AuthService
上注册的事件将不会执行

我将通过使用自定义身份验证适配器来解决此问题。可以通过以下方式从控制器调用此适配器:

$this->zfcUserAuthentication()->getAuthService()->authenticate(new ForceLogin($user));
实现如下所示:

class ForceLogin implements Zend\Authentication\Adapter\AdapterInterface
{
    /**
     * @var UserInterface
     */
    protected $user;

    /**
     * @param $user
     */
    function __construct($user)
    {
        $this->user = $user;
    }

    public function authenticate()
    {
        return new Zend\Authentication\Result(
            Result::SUCCESS,
            $this->getUser()->getId()
        );
    }
}
“我不确定我是否在这里关注您”但我找不到一种方法让ZfcUser使用PHP而不是登录表单登录特定用户。“我不确定我在这里关注您”但我找不到一种方法让ZfcUser使用PHP而不是登录表单登录特定用户。“我不确定我在这里关注您。”“但是我找不到让ZfcUser使用PHP而不是登录表单登录特定用户的方法。”我不确定我在这里是否了解您“但是我找不到让ZfcUser使用PHP而不是登录表单登录特定用户的方法。”