我在哪里可以找到实施Zend_Auth的最佳方式?

时间:2011-09-09 22:23:56

标签: zend-framework zend-form zend-auth

我已经创建了登录表单,我可以对表进行身份验证,

我甚至需要使用Zend_Auth吗?

在哪里可以找到实施Zend_Auth的最佳方式?

由于

2 个答案:

答案 0 :(得分:1)

我使用以下方法进行身份验证:

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是来自登录表单的post请求,来自控制器我调用这个函数: 验证($ 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())

这是对身份验证过程的快速回顾。

答案 1 :(得分:0)

这里有来自zendcasts的教程。他们甚至提供了一些非常有用的东西。

http://www.zendcasts.com/zend-acl-with-authentication-and-reflection/2009/06/

我认为这是一个非常好的开始。