¿Sistema de registro de usuario basado en correo electrónico súper simple de Django?

Encontré la aplicación de registro de django, pero parece compleja para lo que estoy tratando de hacer. Quiero que los usuarios simplemente ingresen su correo electrónico (nombre de usuario) + una contraseña y se registren automáticamente. Sin activaciones ni confirmaciones. Estilo Hacker News. ¿Alguien sabe cuál sería la forma más sencilla de implementar esto? ¿Hay algo preexistente que conozca (no pude encontrar nada), debería modificar de alguna manera el registro de django o construirlo por mi cuenta?

preguntado el 20 de septiembre de 11 a las 06:09

no uses el django-registration aplicación. guarde el nombre de usuario / contraseña y listo. cual es la pregunta aqui? -

crea una aplicación simple, con forma simple. -

ok, estaba pensando demasiado en esto. Todo lo que tengo que hacer es guardar el nombre de usuario + contraseña y almacenarlo. Entendido. Gracias -

¿Qué lógica uso entonces cuando la gente quiere iniciar sesión? Recorro toda la base de datos de nombres de usuario y busco una coincidencia. -

2 Respuestas

Inicio de sesión / Autenticación

Para hacer que Django se autentique usando correo electrónico / contraseña en lugar de nombre de usuario / contraseña, deberá agregar a su settings.py:

AUTHENTICATION_BACKENDS = ('myproject.myauthenticationbackend')

Este backend de autenticación debe poder autenticar a un usuario en función del correo electrónico / contraseña. Puede encontrar un buen backend de autenticación de correo electrónico aquí: http://djangosnippets.org/snippets/74/

registro de usuario

Normalmente, su formulario de registro le pedirá al usuario el correo electrónico y la contraseña. Sin embargo, el modelo de usuario de autenticación de Django requiere que cada usuario tenga un nombre de usuario. Una forma de manejar la adición de un nombre de usuario es: al guardar el modelo de registro, generar un nombre de usuario aleatorio (ya que no lo estamos usando de todos modos).

Deberá comprobar manualmente que el correo electrónico que ha introducido el usuario ya esté registrado en su sistema.

También escribí una publicación de blog al respecto hace un tiempo y tengo notas más completas sobre la autenticación de correo electrónico. También incluye un formulario de registro de correo electrónico / contraseña de muestra:

http://www.xairon.net/2011/05/django-email-only-authentication/

Respondido el 20 de Septiembre de 11 a las 20:09

De la publicación de tu blog, ¿dónde pongo ese código? ¿En el archivo models.py? ¿Qué formulario utilizo para permitir que las personas creen su propio nombre de usuario? - Eric Strobel

La convención de la comunidad es mantener las clases de formulario en forms.py (en el mismo directorio donde está su views.py). Sin embargo, realmente no hay restricciones en el lugar donde coloque la clase, siempre que la importe correctamente cuando la use. Definitivamente lea: djangobook.com/en/2.0/chapter07 - Derek Kwok

No conozco ninguna aplicación que esté haciendo eso, pero parece bastante simple. No creo que sea necesario modificar y usar django-registration en este caso.

Cree un formulario que solicite correo electrónico y contraseña y luego cree el usuario correspondiente. El nombre de usuario puede generarse a partir de un slug de la dirección de correo electrónico.

Mire el siguiente fragmento para permitir la autenticación con una dirección de correo electrónico. http://djangosnippets.org/snippets/74/

Respondido el 20 de Septiembre de 11 a las 11:09

¿En qué archivo pongo ese código? ¿Necesito hacer un formulario para que la gente ingrese eso? - Eric Strobel

El fragmento es un backend de autenticación. Ponlo en un archivo de Python (por ejemplo, email-auth.py) y regístralo en settings.py AUTHENTICATION_BACKENDS = ('yourproject.email-auth.EmailBackend',). Consulte la descripción del fragmento para obtener más detalles: luc

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.