в настоящее время, для входа в систему в пользователя в Платформе Зенда я делаю что-то как
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()
? большинство учебных руководств делает аутентификацию в контроллерах, но я задаюсь вопросом начиная с аутентификации пользовательского входа в систему, походит на проверку мне...
Я думаю, что акт аутентификации пользователя отделен от валидации пользователя.
Вы можете иметь валидатор, который можно использовать для проверки того, является ли определенный набор учетных данных действительным или нет. Однако, как правило, это будет излишним, поскольку вы можете просто передать учетные данные в Zend_Auth для определения действительности и аутентификации пользователя, если это так.
Если вы хотите отделить процесс входа в систему (возможно, он немного сложнее, чем просто вызов Zend_Auth, или вам нужно сделать это в нескольких местах по какой-то причине) от логики вашего контроллера, вы можете создать класс службы входа, который абстрагирует необходимые шаги.