我正在尝试制作Zend 2经典身份验证,而不使用DbTable检查。
我会更好地解释
现在我想用以下内容将数据保存到会话中:
$authService->getStorage()->write($this);
问题是在我执行的下一页调用中使用该代码:
if($authService->hasIdentity())
它反应错误。
那么,我该如何使用自定义身份验证来保存身份?我想我可以实现Zend \ Authentication \ Adapter \ AdapterInterface但我不知道如何......
任何帮助表示赞赏, 非常感谢:))
答案 0 :(得分:3)
你可以这样创建一个适配器:
use Zend\Authentication\Adapter\AdapterInterface;
use Zend\Authentication\Result as AuthResult;
class MyAdapter implements AdapterInterface
{
/**
* @return \Zend\Authentication\Result
*/
public function authenticate()
{
/* Return if can't find user */
return new AuthResult(AuthResult::FAILURE_IDENTITY_NOT_FOUND, null);
/* Return if success, second parameter is the identity, e.g user. */
return new AuthResult(AuthResult::SUCCESS, $identity);
/* Return if user found, but credentials were invalid */
return new AuthResult(AuthResult::FAILURE_CREDENTIAL_INVALID, null);
}
}
您可以将此适配器与ZF2 AuthenticationService一起使用,如下所示:
$auth_service = new \Zend\Authentication\AuthenticationService();
/* Where $myAdapter is a instance of the MyAdapter class above */
$auth_service->setAdapter($myAdapter);