zend框架2:设置会话认证超时

时间:2017-04-24 08:58:32

标签: php authentication zend-framework zend-framework2

我遇到的问题是认证会话没有过期,这是我的认证代码:

$adapter = $this->getServiceLocator()->get('doctrine.authenticationadapter.orm_default');
$adapter->setOptions(array(
    'objectManager' => $this->getEntityManager(),
    'identityClass' => 'Application\Entity\User',
    'identityProperty' => 'email',
    'credentialProperty' => 'password'));

$adapter->setIdentityValue($mail);
$adapter->setCredentialValue($password);
$authService = new AuthenticationService();
$result = $authService->authenticate($adapter);

if ($result->isValid()) 
{
    $identity = $result->getIdentity();
    $authService->getStorage()->write($identity);
    echo "valide"; 
}
else
    echo "invalide";

感谢。

2 个答案:

答案 0 :(得分:0)

您应该看到https://github.com/bjyoungblood/BjyAuthorize

用于身份提供者。 然后在config中:配置role_providers。

答案 1 :(得分:0)

以下是我解决问题的方法:

if ($result->isValid()) 
{
     $session = new Container('Zend_Auth');
     $session->setExpirationSeconds(1800);
    $identity = $result->getIdentity();
    $authService->getStorage()->write($identity);
    echo "valide"; 
}
else
    echo "invalide";

我得到了对象会话Zend_Auth,然后我编辑了到期时间的值。 希望它有所帮助!