Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Mostrar errores al iniciar de sesión

26 de octubre de 2015

Hola que tal? Les hago una consulta, como puedo hacer para mostrar los mensajes de error de usuario y/o contraseña incorrectos, cuando un usuario intenta iniciar sesión ?

Muchas gracias! :D


Respuestas

#1

Ya encontre! :D

if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
    $error = $request->attributes->get(
        SecurityContext::AUTHENTICATION_ERROR
    );
} else {
    $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
    $session->remove(SecurityContext::AUTHENTICATION_ERROR);
}

@MrXXX0323

26 octubre 2015, 19:25
#2

Buenas, si usas symfony 2.6 o superior (2.7 es la versión de soporte largo más actual) puedes hacer uso del servicio security.authentication_utils para obtener el error, ejemplo:

// src/AppBundle/Controller/SecurityController.php
 
public function loginAction(Request $request)
{
    $authenticationUtils = $this->get('security.authentication_utils');
 
    // get the login error if there is one
    $error = $authenticationUtils->getLastAuthenticationError();
 
    // last username entered by the user
    $lastUsername = $authenticationUtils->getLastUsername();
 
    return $this->render(
        'security/login.html.twig',
        array(
            // last username entered by the user
            'last_username' => $lastUsername,
            'error'         => $error,
        )
    );
}

El ejemplo lo he sacado de la documentación oficial:

http://symfony.com/doc/current/cookbook/security/form_login_setup.html

Saludos!

@manuel_j555

26 octubre 2015, 19:56