Использование Zend_Auth в Pimcore

Я новичок в Pimcore и пытаюсь использовать Zend Auth с объектами pimcore. Я предполагаю, что это мудрый подход, и он кажется мне более или менее логичным. Я сделал первоначальную настройку объекта в самом pimcore. Теперь я пытаюсь понять, как подключить его к zend auth, то есть, например, когда я расширяю zend auth и имею свою собственную функцию входа в систему, как мне проверить, действителен ли логин в моем объекте?

Может быть, у кого-нибудь есть руководство, которое я мог бы использовать для этого? в противном случае, если бы кто-то мог указать мне правильное направление, это было бы здорово

Джейсон


person Jason    schedule 18.04.2011    source источник
comment
Вы хотите использовать пользовательский адаптер входа в систему pimcore или аутентификацию для вашего приложения?   -  person chelmertz    schedule 30.05.2011
comment
Аутентификация предназначена для моего приложения. Ему не нужно связываться с бэкэндом pimcore :)   -  person Jason    schedule 31.05.2011
comment
И в представлении вы отображаете данные своего объекта, которые хотите проверить, вошел ли пользователь в систему?   -  person Chris Laarman    schedule 08.06.2011


Ответы (1)


Вы можете следовать этому руководству: http://www.pimcore.org/forum/discussion/419/zend_auth_adapter-for-pimcore-objects , у меня это сработало.

ОБНОВЛЕНИЕ: ссылка выше была удалена, поэтому полный ответ здесь:

Во-первых, вам нужно поместить ObjectAdapter.php в Website/lib/Website/Auth/ObjectAdapter.php .

Затем вы входите в систему под своим пользователем (используйте по своему усмотрению, например, в функции инициализации вашего контроллера):

$authAdapter = new Website_Auth_ObjectAdapter('Object_Users', 'o_key', 'password', '/users/'); 
// The parameters are 1. object you keep your users in, 2. the field that contains their username (I use o_key which is the name of the object itself, to keep unique usernames without fuzz), and 3. the password field in the user object.

// Setup auth adapter
$authAdapter->setIdentity($username)->setCredential($password); 

$auth = Zend_Auth::getInstance(); 

// Authenticate 
$result = $auth->authenticate($authAdapter); 
if ($result->isValid()) {
    // Login successful
} else {
    // Login failed
}

Чтобы проверить сеанс входа в систему, используйте:

$this->auth = Zend_Auth::getInstance();
if ($this->auth->hasIdentity()) { 
    // We have a login session (user is logged in)
    $userObject = $this->auth->getIdentity();
}   

Чтобы убить сеанс:

Zend_Auth::getInstance()->clearIdentity();
person Patrick Fabrizius    schedule 06.07.2011