Así que estoy leyendo el capítulo de seguridad de Symfony2 Book. Entiendo todo, pero me gustaría personalizar el mensaje de error si hay un error de inicio de sesión.Personalizar autenticación - Iniciar sesión Symfony2 Mensajes
¿En qué archivo puedo cambiar esto?
Esta es la plantilla:
{% if error %}
<div>{{ error.message }}</div>
{% endif %}
<form action="{{ path('login_check') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
<label for="password">Password:</label>
<input type="password" id="password" name="_password" />
{#
If you want to control the URL the user is redirected to on success (more details below)
<input type="hidden" name="_target_path" value="/account" />
#}
<input type="submit" name="login" />
Creo que la peor manera de hacer esto sería algo así como:
if (error.message=="Bad credentials")
echo "Los datos son erróneos :)"
if (error.message==The presented password is invalid")
echo "La combinación username/password no es correcta :)"
¿Quieres que me ayude por favor?
Editar: Lo tengo trabajo:
En caso de que alguien tiene que hacer esto, asegúrese de agregar esta línea a la config.yml
#app/config/config.yml
framework:
translator: { fallback: en }
y poner en el archivo messages.whateverisyourlanguage.yml, en mi caso messages.es.yml, líneas como esta:
Texto que desea traducir: texto traducido
#Foo\DummyBundle\Resources\translations\messages.es.yml
The presented password cannot be empty.: El campo contrasena no debe estar vacio
The presented password is invalid.: Los datos suministrados son incorrectos
Bad credentials: Los datos suministrados son incorrectos
Tenga cuidado con el texto que desea traducir. Si el texto tiene un punto al final, debes poner el punto. No estaba haciendo eso y no estaba funcionando.
footranslate.
es diferente a footranslate
Saludos! :)
Bien, gracias. Ahora, ¿dónde puedo encontrar todos los mensajes de error que debería arrojar un formulario de inicio de sesión? Creo que tengo que poner exactamente el mensaje que aparecerá en el archivo de mensajes, así que podría traducirlos todos, pero no estoy seguro de cuáles son los mensajes. –
Hay solo unos pocos mensajes: revise los mensajes de excepción en archivos ubicados en './Vendor/symfony/src/Symfony/Component/Security/Core/Authentication/Provider /' – jkucharovic
También hay mensajes aquí: vendor \ symfony \ src \ Symfony \ Component \ Security \ Core \ User \ UserChecker.php –