У вас есть оператор if для аутентификации имени пользователя и пароля. В случае, если кто-то проверяет свою электронную почту, вы имитируете этот процесс и позволяете пользователю аутентифицировать свою учетную запись с помощью электронной почты и ключа подтверждения.
Все, что вам нужно сделать, это убедиться, что адрес электронной почты и подтверждение верны, и поместить это условие под:
.
.
.
$verified = $emailVerification->isValid( $email, $key );
if ( $verified )
{
$auth = Zend_Auth::getInstance();
$storage = $auth->getStorage();
$row = $authAdapter->getResultRowObject(array('user_id'));
$userModel = new Model_User();
$user = $userModel->loadUserProfile($row->user_id);
$storage->write($user);
}
После этого пользователь войдет в систему после того, как вы сохранили его пользовательские данные в хранилище Zend_Auth.
Я бы посоветовал после использования этого метода удалить ключ проверки из записи пользователя, чтобы гарантировать, что они не смогут войти через этот процесс снова, если они не забудут свой пароль, в случае, если вы назначите новый ключ проверки.
Надеюсь, это поможет!