У меня есть следующий код и который работает, но теперь следующий шаг.Zend 2 После авторизации как установить пользователя
Как и где мне нужно установить сеанс, чтобы сценарий «видел», что пользователь уже вошел в систему?
if ($form->isValid()) {
$securePass = $this->getUsersTable()->getUserByUsername($this->params()->fromPost('username'));
if($securePass){
$bcrypt = new Bcrypt();
if ($bcrypt->verify($this->params()->fromPost('password') , $securePass->password)) {
$sm = $this->getServiceLocator();
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$authAdapter = new AuthAdapter(
$dbAdapter,
'users',
'username',
'password'
);
$authAdapter
->setIdentity($securePass->username)
->setCredential($securePass->password);
$result = $authAdapter->authenticate($authAdapter);
echo $result->getIdentity() . "\n\n";
}
else {
}
Это показывает, как получить идентичность, но не объясняет, как установить его в первую очередь. – srayner
Я изменил свой скрипт и это работает. Это прекрасно работает, почему так сложно? Теперь я могу проверить, равен ли $ container-> access 1 или 0 – Bas
@Bas. Если вы считаете, что этот ответ сложный, то я сожалею, что zf2 не для вас. Этот ответ показывает, как использовать компонент «Zend \ Authentication» для входа в систему. На вашем пути вся логика домена добавляется в контроллер, что делает контроллер слишком раздутым. Таким образом, это также нарушает структуру MVC! –