Pasar al contenido principal
Monoforms Web Development
CAPTCHA
10 + 8 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Main navigation

  • Home
  • Sobre mi
  • Contacto
CAPTCHA
1 + 7 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Sobrescribir enlaces de ayuda a la navegación

  1. Home
  2. Redirect Después del Login Con Symfony 4.3

Redirect después del login con Symfony 4.3

By peter, 12 Noviembre, 2020

En la chamba se me presentó el requerimiento de que un usuario con cierto ROL debería ser redirigido a una ruta exclusiva para estos usuarios.

Con la ayuda del grupo de slack de PHPMX pude sacar este requerimiento. Esto es en Symfony 4.3.

En el guard authenticator: LoginFormAuthenticator, lo que hice fue inyectar el servicio security.authorization_checker

use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;

class LoginFormAuthenticator

{
    protected $authorizationChecker;

    public function __construct(AuthorizationCheckerInterface $authorizationChecker)
    {
        $this->authorizationChecker = $authorizationChecker;
    }

    // ...
}

Luego en el onAuthenticationSuccess agregué mi lógica:

public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
   // Aquí redirigir
   if ($this->authorizationChecker->isGranted('ROLE_CLIENT_MANAGER')) {
       return new RedirectResponse(
           $this->urlGenerator->generate('dashboard-authorized-change-result')
       );
   }

   if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
       return new RedirectResponse($targetPath);
   }

   return new RedirectResponse($this->urlGenerator->generate('index'));
}

Por último en el controller donde definí mi ruta con route annotations le agregué el nombre de la ruta para que no me saliera un mensaje diciendo que la ruta no existe.

/**
* @Route("/dashboard-authorized-change-result", name="dashboard-authorized-change-result")
*/

Espero sea de ayuda.

Saludos.

Comentarios

Contenido reciente

  • Como limpiar usings sin usar en Rider
  • Instalando apache, mysql y php en Ubuntu
  • Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)
  • ¿Que son los sitios web agregadores y los anuncios clasificados?
  • Mi Experiencia con Docker, Podman y Kubernetes
  • Lo más destacado del AWS User Group Puebla
  • Docker: Ignorar el directorio vendor en un proyecto de Go.
  • Instala Kubernetes en Ubuntu 22.04 para pruebas
  • Serverless, Lambda y Kubernetes: Fundamentos para la nube
  • Ejecuta tu lambda de Golang en AWS SAM de forma local

Recomendados

  • Biodiv
  • Medium
RSS feed

Política de privacidad

Términos de uso

Recomendados

  • Biodiv
  • Medium
Powered by Drupal

Monoforms ©2021 Created by Pedro Rojas Reyes