Аутентификация Shld быть сделанным в Zend_Validate вместо действия контроллера?

в настоящее время, для входа в систему в пользователя в Платформе Зенда я делаю что-то как

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";
    }
}

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

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

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

1
задан Jiew Meng 25 July 2010 в 10:38
поделиться

1 ответ

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

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

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

2
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: