Zend framework2 ZF2 ZfcUser强制登录
我有一个ZF2模块ZfcUser设置 注册和登录表单工作正常。我制作了一个自定义模块来连接Linkedin并获取用户信息,然后在数据库中注册用户数据 注册部分已经完成,但我面临的问题是,我需要使用数据库中的数据登录用户(我有关于用户的所有信息,所以我知道应该登录哪个用户),但是我找不到让ZfcUser使用PHP而不是登录表单登录特定用户的方法 我不擅长适配器和\Zend\Authentication。如果有任何帮助或指示,我将不胜感激 我试图查看ZfcUser控制器中的登录过程,但它让我更困惑,而不是帮助我 我也试着在谷歌上寻找答案,但在这个话题上我什么也没找到 如果可能,我希望“强制登录过程”在ZfcUser模块之外 在查看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控制器中的登录过程,但它让我更困惑,
/**
* 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而不是登录表单登录特定用户的方法。”