在哪里可以找到实现 Zend_Auth 的最佳方法?

发布于 2024-12-03 20:40:21 字数 106 浏览 0 评论 0原文

我已经创建了登录表单,并且可以根据表进行身份验证,

我是否还需要使用 Zend_Auth?

在哪里可以找到实现 Zend_Auth 的最佳方法?

谢谢

I've already created the login forms and I can authenticate against a table,

Do I even need to use Zend_Auth?

Where can I find the best way of implementing Zend_Auth?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扛刀软妹 2024-12-10 20:40:21

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

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())

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

I use the following method to authenticate:

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 is the post request from the login form, from the controller I call the function like this:
authenticate($this->_request->getPost())

In any action if you want to verify the identity of the user you just:

$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
    $identity = $auth->getIdentity(); //this is the user in my case
}

At the login form I have a checkbox (named public) if its checked the the authentication information will be saved in a cookie otherwhise it will be deleted when the user closes the browser (Zend_Session::forgetMe())

This is a quick review of the auth process.

↘紸啶 2024-12-10 20:40:21

这里有来自 zendcasts 的教程。他们甚至提供一些团结的东西。

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

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

Here you have a tutorial from zendcasts. They even provide some unitesting stuff.

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

I think it's a really good start.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文