Symfony - Autenticación en Symfony 3.4

 
Vista:
Imágen de perfil de Yosamy
Val: 1
Ha mantenido su posición en Symfony (en relación al último mes)
Gráfica de Symfony

Autenticación en Symfony 3.4

Publicado por Yosamy (1 intervención) el 20/10/2019 18:32:09
Buenas a todos:
Quiero lograr lo siguiente, pero no doy con la solución.
- En la vista Login, quiero que esté el username, password y además "un select para seleccionar el USER PROVIDER".... así como windows cuando la PC esta unida a un dominio que te deja seleccionar si quieres autenticarte LOCAL o por el DOMINIO.

He buscado en infinidad de páginas, pero no encuentro nada. ¿Lo que quiero hacer tiene solución?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Georkis
Val: 25
Ha mantenido su posición en Symfony (en relación al último mes)
Gráfica de Symfony

Autenticación en Symfony 3.4

Publicado por Georkis (3 intervenciones) el 27/10/2019 12:25:20
hola, tiene que usar los eventos login, creando un Security o un listener... yo hice al parecido con una clase UserChecker q verifica si el usuario esta activo o no, porque que en symfony 4 la clase AdvacedUserInterface esta en deprecreded... puedes guiarte por aqui

pueded usar la clase Request para capturar el valor del select...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
 
namespace App\Security;
 
use App\Entity\User as AppUser;
use Symfony\Component\Security\Core\User\UserCheckerInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Contracts\Translation\TranslatorInterface;
 
class UserChecker implements UserCheckerInterface
{
    private $trans;
 
    public function __construct(TranslatorInterface $trans)
    {
        $this->trans = $trans;
    }
 
    public function checkPostAuth(UserInterface $user)
    {
        if(!$user instanceof AppUser){
            return;
        }
 
        if($user->getIsActive() == false or ($user->getClient() and !$user->getClient()->getIsActive())){
            throw new CustomUserMessageAuthenticationException($this->trans->trans('user.disactived'));
        }
    }
 
    public function checkPreAuth(UserInterface $user)
    {
        if(!$user instanceof AppUser){
            return;
        }
 
        if($user->getIsActive() == false){
            throw new CustomUserMessageAuthenticationException($this->trans->trans('user.disactive'));
        }
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar