Tengo una pregunta acerca de FOSUserBundle para Symfony 2.0.x. En su documentación, puede encontrar la manera de cambiar el inicio de sesión para que funcione con el nombre de usuario y el correo electrónico. Eso funciona genial! Pero quiero iniciar sesión para trabajar solo con el correo electrónico. Así que agregué una función en CustomUserManager (se extiende desde el original) que asegura que solo pueda iniciar sesión con su correo electrónico.FOSUserBundle iniciar sesión con correo electrónico (Symfony2)
namespace Frontend\UserBundle\Model;
use FOS\UserBundle\Entity\UserManager;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
class CustomUserManager extends UserManager
{
public function loadUserByUsername($email)
{
/*$user = $this->findUserByUsernameOrEmail($username);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with name "%s" was found.', $username));
}
return $user;*/
//Change it to only email (Default calls loadUserByUsername -> we send it to our own loadUserByEmail)
return $this->loadUserByEmail($email);
}
public function loadUserByEmail($email)
{
$user = $this->findUserByEmail($email);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with email "%s" was found.', $email));
}
return $user;
}
}
Pero ahora tengo un problema que necesito para controlar los valores que se guardan en la sesión. Guarda mi nombre de usuario en la sesión y cuando el sistema lo comprueba no habrá ningún correo electrónico (porque solo revisa el correo electrónico) disponible.
Así que mi pregunta es cómo/dónde se puede cambiar el valor que se almacena dentro de la variable de nombre de usuario.
Gracias!
Hola gracias por este NoFlag - esto funcionó perfectamente para mí. Lo estaba buscando en la referencia de configuración. Pero, como esto está realmente en la configuración de seguridad, no está en la [referencia de configuración de FOSUserBundle] (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/configuration_reference.md). Para cualquier otra persona que hizo lo mismo que yo, debe buscarlo en [documentos de configuración de seguridad para FOSUserBundle] (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/logging_by_username_or_email.md) – jfgrissom
es tipo de entrada html5, para navegador reciente solamente –
Si bien esto funciona y tendría sentido hacerlo de todos modos, tenga en cuenta que un usuario podría abrir herramientas dev y cambiar 'type =" email "' to 'type =" text "' y luego inicie sesión con un nombre de usuario.Obviamente, depende de su situación, ya sea que eso sea un problema o no. – bassplayer7