/** * @Route("/", methods={"POST","GET"}, name="loginindex") */ public function indexAction() { $form = new FormLogin(); $username = $this->request->getPost('username', array('striptags', 'trim')); $password = $this->request->getPost('password', array('striptags', 'trim')); //si es una petición post if ($this->request->isPost()) { $token = $this->request->getPost("randomsting"); if (trim($token) == trim($this->security->getSessionToken())) { //paso validacion CSRF //si el formulario no pasa la validación que le hemos impuesto if ($form->isValid($this->request->getPost()) == false) { //mostramos los mensajes con la clase error que hemos personalizado en los mensajes flash foreach ($form->getMessages() as $message) { $this->flash->error($message); } } else { //obtenemos al usuario por su email $user = User::findFirstByUsername($username); //si existe el usuario buscado por email if ($user) { //si el password que hay en la base de datos coincide con el que ha //ingresado encriptado, le damos luz verde, los datos son correctos if ($this->security->checkHash($password, $user->password)) { //creamos la sesión del usuario con su email $this->session->set("userid", $user->id); $this->session->set("username", $user->username); return $this->response->redirect('index/home'); } else { $this->flash->error("Usuario o contraseña inválida"); } } else { $this->flash->error("Usuario o contraseña inválida"); } } } else { $this->flash->error("Se ha encontrado un problema en la autenticación"); } } $this->view->form = new FormLogin(); }