ágil tutorial symfony2 instalar español descargar desarrollo con php symfony

tutorial - symfony php descargar



Cómo deshabilitar la redirección después de login_check en Symfony 2 (2)

Necesito deshabilitar la redirección después de la verificación de inicio de sesión, porque necesito obtener solo que el inicio de sesión fue exitoso o no. Después del envío / login_check url, dame los datos correctos, pero sigue redirigiendo a / login (en caso de error).
/ login está en blanco después de eso.
Estoy tratando de configurar el formulario de inicio de sesión usando extjs 4, así que necesito validarlo a través de una solicitud posterior ajax. login_check debe autenticarse, crear sesión de usuario y devolver si fue exitosa o fallida, pero no se reenvía a ninguna parte.

mi login.html.twig se ve así:

{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} { success:true } {% else %} { success: false } {% endif %}

y en security.yml:

firewalls: main: form_login: provider: fos_userbundle failure_path: null failure_forward: false


Crear un controlador de autenticación:

namespace YourVendor/UserBundle/Handler; // "use" statements here class AuthenticationHandler implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface { public function onAuthenticationSuccess(Request $request, TokenInterface $token) { if ($request->isXmlHttpRequest()) { $result = array(''success'' => true); return new Response(json_encode($result)); } else { // Handle non XmlHttp request here } } public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { if ($request->isXmlHttpRequest()) { $result = array(''success'' => false); return new Response(json_encode($result)); } else { // Handle non XmlHttp request here } } }

Registre el controlador como un servicio:

services: authentication_handler: class: YourVendor/UserBundle/Handler/AuthenticationHandler

Registre el servicio en el firewall:

firewalls: main: form_login: success_handler: authentication_handler failure_handler: authentication_handler

Este es un ejemplo aproximado para darle una idea general: deberá averiguar los detalles usted mismo. Si estás atascado y necesitas más aclaraciones, escribe tus preguntas en los comentarios y trataré de explicar el ejemplo.


El flujo normal de Symfony es redirigirlo a una página de inicio de sesión si no está conectado, lo que funciona bien para los seres humanos. Pero parece que estás buscando una solución programática.

¿Has intentado configurar _target_path en tu formulario para declarar cuál debería ser la "página siguiente"? Symfony siempre lo enviará a algún lado, pero puede establecerlo en cualquier lugar donde desee.

Encontré estas dos páginas útiles para describir el funcionamiento interno del formulario de inicio de sesión: