Где я могу найти лучший способ реализации Zend_Auth? - PullRequest
0 голосов
/ 10 сентября 2011

Я уже создал формы входа в систему и могу аутентифицироваться по таблице,

Нужно ли вообще использовать Zend_Auth?

Где я могу найти лучший способ реализации Zend_Auth?

Спасибо

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

Я использую следующий метод аутентификации:

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 :: забудьтеMe ())

Это быстрый обзор процесса аутентификации.

0 голосов
/ 10 сентября 2011

Здесь у вас есть учебник от Zendcasts. Они даже предоставляют кое-что объединяющее.

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

Я думаю, это действительно хорошее начало.

...