我遇到的问题是认证会话没有过期,这是我的认证代码:
$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";
感谢。
答案 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
,然后我编辑了到期时间的值。
希望它有所帮助!