Questa domanda Symfony 2.1Come utilizzare la codifica di fabbrica in Symfony 2 all'interno del modellatore?
Come posso codificare la password dell'utente con:
$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('ryanpass', $user->getSalt());
$user->setPassword($password);
e base config:
# app/config/security.yml
security:
# ...
encoders:
Acme\UserBundle\Entity\User: sha512
All'interno dei modelli setter:
class User implements UserInterface, \Serializable
{
public function setPassword($password)
{
$this->password = $password;
}
}
I ritengo che il processo di crittografia della password debba essere gestito da mo del. Come posso utilizzare la fabbrica di encoder standard all'interno del modello?
Sì, le entità possono gestire anche i dati. Ad esempio è possibile aggiungere un RUOLO a un utente che non ha nessuno nel metodo getter come spiegato qui: https://knpuniversity.com/screencast/symfony-security/dynamic-roles Non metterei tutto nell'entità ma si sta impostando password, e questo è ciò che fa la funzione, quindi ha senso secondo me. –