我已经创建了登录表单,并且可以针对表进行身份验证,
我什至需要使用 Zend_Auth 吗?
我在哪里可以找到实现 Zend_Auth 的最佳方式?
谢谢
我已经创建了登录表单,并且可以针对表进行身份验证,
我什至需要使用 Zend_Auth 吗?
我在哪里可以找到实现 Zend_Auth 的最佳方式?
谢谢
我使用以下方法进行身份验证:
function authenticate ($data)
{
$db = \Zend_Db_Table::getDefaultAdapter();
$authAdapter = new \Zend_Auth_Adapter_DbTable($db);
$authAdapter->setTableName('usuarios2');
$authAdapter->setIdentityColumn('user');
$authAdapter->setCredentialColumn('password');
$authAdapter->setCredentialTreatment('MD5(?) and active = 1');
$authAdapter->setIdentity($data['user']);
$authAdapter->setCredential($data['password']);
$auth = \Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
if ($data['public'] == "1") {
\Zend_Session::rememberMe(1209600);
} else {
\Zend_Session::forgetMe();
}
return TRUE;
} else {
return FALSE;
}
}
$data 是来自登录表单的发布请求,来自控制器我这样调用函数: authenticate($this->_request->getPost())
在任何操作中,如果您想验证用户的身份,您只需:
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$identity = $auth->getIdentity(); //this is the user in my case
}
在登录表单中,我有一个复选框(名为 public),如果选中,则身份验证信息将保存在 cookie 中,否则在用户关闭浏览器时将被删除(Zend_Session::forgetMe())
这是对身份验证过程的快速回顾。
在这里你有一个来自 zendcasts 的教程。他们甚至提供了一些统一的东西。
http://www.zendcasts.com/zend-acl-with-authentication-and-reflection/2009/06/
我认为这是一个非常好的开始。