Ho una domanda su FOSUserBundle per Symfony 2.0.x. In questa documentazione è possibile trovare il modo di modificare il login per lavorare con il nome utente e l'e-mail. Funziona alla grande! Ma voglio accedere per lavorare con solo l'email. Così ho aggiunto una funzione nel mio CustomUserManager (si estende dall'originale) che ti assicura che puoi semplicemente accedere con la tua email.Login FOSUserBundle con e-mail (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;
}
}
Ma ora ho un problema che ho bisogno di controllare i valori che vengono salvati nella sessione. Salva il mio nome utente nella sessione e quando il sistema verifica che non ci sarà nessuna email (perché controlla solo l'email) disponibile.
Quindi la mia domanda è come/dove è possibile modificare il valore che è memorizzato all'interno della variabile username.
Grazie!
Hey grazie per questo noflag - questo ha funzionato perfettamente per me è stato. Lo stavo cercando nel riferimento di configurazione. Ma, poiché questo è in realtà nella configurazione di sicurezza, non è nel riferimento di configurazione [FOSUserBundle] (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/configuration_reference.md). Per chiunque altro ha fatto la stessa cosa che ho fatto - Devi cercarlo nei [documenti di configurazione sicurezza per FOSUserBundle] (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/logging_by_username_or_email.md). – jfgrissom
è tipo di input html5, solo per browser recenti –
Sebbene funzioni e abbia senso fare comunque, tenere presente che un utente potrebbe aprire gli strumenti di sviluppo e modificare 'type =" email "' a 'type =" text "' e quindi accedi con un nome utente.Dipende ovviamente dalla tua situazione se questo sarebbe un problema o no. – bassplayer7