app - django allauth
django-social-auth django-registration y django-profiles-juntos (1)
¿Alguien ha usado django-social-auth , django-registration y django-profiles juntos? ¿Funcionan bien juntos? He establecido social-auth pero leí en alguna parte que django-allauth es mejor. ¿Debo cambiar a eso?
por favor avise
Actualizar:
He usado allauth
en mi proyecto y está funcionando bien. No es necesario usar django-registration
con allauth porque está integrado dentro. Sin embargo, estoy usando perfiles de usuario personalizados y esa es una mejor opción que los django-profiles
.
Funcionan bien juntos. Acabo de configurar esto el otro día (excepto que no necesité usar los perfiles django, ya que es tan fácil crear los tuyos).
- Un usuario puede configurar una cuenta normal (contrib.auth) usando django-registration que envía un correo electrónico para confirmar, creando un nombre de usuario / correo electrónico / contraseña en la base de datos.
- Alternativamente, pueden iniciar sesión de inmediato con twitter / facebook / google, etc. y se crea automáticamente un usuario contrib.auth para ellos con una contraseña ficticia (y potencialmente sin correo electrónico).
Algunos puntos y limitaciones:
- Cuando inicia sesión con un perfil de redes sociales, se crea automáticamente un contrib.auth.user. Si ese nombre de usuario ya existe, se agrega un UUID (esto es feo y django-social-auth no parece tratar este problema todavía), una solución fácil es permitir al usuario cambiar su nombre de usuario después de registrarse . Lo ideal es que, cuando inicies sesión en Twitter, tengas la oportunidad de refinar tus datos antes de guardarlos en la base de datos (en lugar de después).
- De manera similar, se establece una contraseña ficticia, lo que dificulta que el usuario pueda restablecer la contraseña utilizando el formulario de cambio de contraseña de django incorporado, ya que no podrá ingresar su contraseña existente (ya que está configurada como una cadena inestable)
- Debe tener en cuenta cuando un usuario que se registre en Twitter quiera asociar más adelante su cuenta de Facebook: django-social-auth para esto, y es fácil asociar varios inicios de sesión de terceros con una sola cuenta.
- Twitter no divulga la dirección de correo electrónico de un usuario, por lo que puede pedirle que se la proporcione y la guarde en la base de datos. El problema es que deberá verificarla, lo que anula todo el propósito de usar Social autenticación
django-social-auth es un gran proyecto y se está desarrollando activamente con un grupo en Convore Google Group que siempre está actualizado, así que sin duda lo recomendaría. También es muy fácil de configurar: solo asegúrese de haber eliminado su flujo de inicio de sesión y de que conoce las posibles limitaciones de este uso.
EDITAR:
Esta publicación está un poco desactualizada.
- django-social-auth se ha convertido en python-social-auth
- django-allauth : OP mencionó a django-allauth que se ha hecho popular recientemente. No lo he usado, pero parece ser un excelente reemplazo para la autenticación, el registro y los perfiles.
- Modelos de usuario configurables : Django 1.5 introdujo modelos de usuario configurables en el módulo de
auth
para que ahora pueda editar los campos que desea utilizar para su usuario (solo correo electrónico, sin nombre de usuario, etc.). Esto también es útil si desea agregar información similar a un perfil a su usuario sin tener que unirse a otra tabla (como lo haría con los perfiles django o una relaciónOneToOne
con un modelo de perfil personalizado)