2011-11-18 9 views
7

¿Cómo puedo permitir que los usuarios establezcan contraseñas una vez que crean una cuenta a través de Omniauth? Omniauth crea una contraseña de código auxiliar durante el registro, pero el usuario no sabe cuál es esa contraseña, por lo tanto, no puede cambiarla desde la página de edición de usuario.Establecer una contraseña después de crear una cuenta con Omniauth (Rails + Devise)

Intenté anular el formulario de edición con las instrucciones aquí: How To: Allow users to edit their account without providing a password. Pude cambiar la contraseña cifrada en el archivo db, pero no puedo iniciar sesión con la nueva contraseña, y, curiosamente, no veo ningún error en la consola durante el inicio de sesión.

¿Alguna idea?

Estoy usando Rails 3.0.7 y Devise 1.4.8. Mi código de inicio de sesión/registro se basa en el tutorial estándar Omniauth+Devise.

Respuesta

0

Omniauth solo le proporciona información sobre un usuario remoto, con la garantía de que este usuario está conectado al proveedor. A continuación, tiene tres opciones:

  • crear un usuario con esa información, y establecer los campos que no están especificados con el método por defecto (que es lo que hicieron por contraseña)
  • utilizar esa información para llenar previamente legado formulario de registro (self.new_with_session como se describe en su tutorial) y permita a los usuarios crear su cuenta ellos mismos, completando los campos faltantes (como contraseña)
  • almacene la información omniauth en una sesión (o cookie), redirija a su usuario a un formulario con los campos faltantes, y usa tanto la información del formulario como la información de la sesión para crear tu nuevo usuario.
Cuestiones relacionadas