| |||
Resetear contraseña Gente tengo una duda con un formulario para hacer un reseteo de contraseña, el formulario consta de 3 campos, uno para ingresar contraseña actual a modo de validación y luego los otros dos para ingresar contraseña nueva y repetirla (para segunda validación), de estar investigando la manera de acceder a la contraseña guardada en la base de datos se complica ya que está encriptada y es imposible desencriptar, estuve fijandome en el código de FOSUserBundle y chequeando en el controlador, siguiendo las rutas de como se generan las instancias para crear un nuevo usuario veo que en la Entity User tiene una propiedad $plainPassword que no persiste y se rellena cuando el usuario hace login, luego cuando se requiere resetear la contraseña solamente se comparan los datos de $plainPassword y el dato que ingresa el usuario en el formulario de reseteo de contraseña, mi duda es si esta sería una forma correcta de implementar esa validación???? |
| ||||
Respuesta: Resetear contraseña Si es una de las formas de hacerlo, solo recuerda implementar el método eraseCredentials() de la interfaz UserInterface o AdvancedUserInterface dependiendo de cual implementaste. |
| |||
Respuesta: Resetear contraseña No, no voy a usar FOSUserBundle, voy a intentar crear un formulario de reseteo de contraseña usando la entidad usuario y tengo implementada la interfaz AdvancedUserInterface. Intentaré hacer algo parecido a como lo implementa ese bundle que es lo que me había interesado cuando lo revisé, el metodo eraseCredentials() sería para limpiar la propiedad $plainPassword no? |
| |||
Respuesta: Resetear contraseña Al final lo que hice fue esto ya que symfony tiene un validador de password Creé un modelo para el formulario donde con la anotación valido que la contraseña exista.
Código PHP:
Ver original el formType
Código PHP:
Ver original Y en el controlador valido que la contraseña actual sea la misma que está guardada:
Código PHP:
Ver original Bueno, dejo esta forma como lo resolví en mi caso particular, no sé si será la forma mas correcta pero me ha funcionado, se lo dejo para quien quiera hacer algo parecido. |
Etiquetas: |