Должна ли аутентификация выполняться в Zend_Validate вместо действия контроллера? - PullRequest
1 голос
/ 25 июля 2010

в настоящее время, чтобы войти в систему в Zend Framework, я делаю что-то вроде

public function loginAction()
{
    if ($this->getRequest()->isPost()) {
        $adapter = new Application_Auth_Adapter(
                        $this->getRequest()->getParam('username'),
                        $this->getRequest()->getParam('password')
                    );
        $auth = Zend_Auth::getInstance();
        $auth->authenticate($adapter);
        if ($auth->hasIdentity()) {
            echo $auth->getIdentity()->name;
        } else {
            echo "failed login";
        }
    } else {
        echo "not posted";
    }
}

но мне интересно, есть ли у меня вся логика проверки

$auth = Zend_Auth::getInstance();
$auth->authenticate($adapter);
if ($auth->hasIdentity()) { ...

положить вместо Zend_Validate, тогда все, что делает мой контроллер, это проверяет, есть ли форма isValid()? большинство уроков выполняют аутентификацию в контроллерах, но мне интересно, так как аутентификация входа пользователя для меня звучит как проверка ...

1 Ответ

2 голосов
/ 25 июля 2010

Я думаю, что акт аутентификации пользователя отделен от проверки пользователя.

У вас может быть средство проверки, которое можно использовать для проверки того, является ли определенный набор учетных данных действительным или нет. Тем не менее, это обычно будет немного избыточно, так как вы можете просто передать учетные данные Zend_Auth, чтобы определить достоверность и аутентифицировать пользователя, если так.

Если вы хотите отделить процесс входа в систему (может быть, он немного сложнее, чем просто вызов Zend_Auth или вам по какой-то причине нужно сделать это более чем в одном месте) от логики вашего контроллера, вы можете создать класс обслуживания входа, обобщает необходимые шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...