Использование Zend_Auth в Pimcore - PullRequest
1 голос
/ 18 апреля 2011

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

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

Jason

1 Ответ

3 голосов
/ 06 июля 2011

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

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

Во-первых, вам нужно поместить ObjectAdapter.php в сайт / 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();
...