django-social-auth django-registration и django-profiles вместе

Кто-нибудь использовал django-social-auth, django-registration и django-profiles вместе. Они хорошо работают вместе? Я установил социальную аутентификацию, но где-то читал, что django-allauth лучше. Должен ли я перейти на это?

пожалуйста, порекомендуйте

Обновление:

Я использовал allauth в своем проекте, и он отлично работает. Вам не нужно использовать django-registration с allauth, потому что он интегрирован внутри. Однако я использую пользовательские профили пользователей, и это лучший вариант, чем django-profiles.


person Sachin    schedule 26.10.2011    source источник


Ответы (1)


Они отлично работают вместе - я только что настроил это на днях (за исключением того, что мне не нужно было использовать django-профили, так как легко создать свой собственный).

  • Пользователь может настроить обычную учетную запись (contrib.auth) с помощью django-registration, которая отправляет электронное письмо для подтверждения — создание имени пользователя/электронной почты/пароля в БД.
  • В качестве альтернативы они могут сразу войти в систему с помощью twitter/facebook/google и т. д., и для них автоматически создается пользователь contrib.auth с фиктивным паролем (и, возможно, без электронной почты).

Некоторые моменты и ограничения:

  • Когда вы входите в систему с помощью профиля в социальной сети, автоматически создается contrib.auth.user. Если это имя пользователя уже существует, добавляется UUID — это некрасиво, и django-social-auth, похоже, еще не решает эту проблему — простое решение — позволить пользователю изменить свое имя пользователя после регистрации. . В идеале, когда вы входите в систему через Twitter, у вас есть возможность уточнить свои данные до того, как они будут сохранены в БД (а не после).
  • Точно так же устанавливается фиктивный пароль - это затрудняет возможность сброса пароля пользователем с помощью встроенной формы изменения пароля django, поскольку они не смогут ввести свой существующий пароль (поскольку он установлен как нерасшифрованная строка)
  • Вам нужно учитывать, когда пользователь, который регистрируется в Twitter, хочет позже связать свою учетную запись facebook - аккаунты django-social-auth для этого, и легко связать несколько сторонних входов с одной учетной записью
  • Твиттер не раскрывает адрес электронной почты пользователя, поэтому вы можете попросить их предоставить его вам и сохранить в базе данных — проблема в том, что вам нужно будет подтвердить его, что сводит на нет всю цель использования автор!

django-social-auth — отличный проект, который активно разрабатывается в группе convore Группа Google, которая всегда актуальна, поэтому я определенно рекомендую ее. Кроме того, его очень легко настроить — просто убедитесь, что вы упростили процесс входа в систему и знаете о потенциальных ограничениях, связанных с его использованием.

ИЗМЕНИТЬ:

Этот пост немного устарел

  • django-social-auth стал python-social-auth
  • django-allauth: OP упомянул django-allauth, который получил популярный в последнее время. Я не использовал его, но он кажется отличной заменой для аутентификации, регистрации и профилей.
  • Настраиваемые пользовательские модели. В Django 1.5 представлены настраиваемые пользовательские модели в модуле auth, чтобы теперь вы могли редактировать поля, которые вы хотите использовать для своего пользователя (только электронная почта, без имени пользователя и т. д.). Это также полезно, если вы хотите добавить информацию, подобную профилю, своему пользователю, не присоединяясь к другой таблице (как в случае с django-profiles или отношением OneToOne с пользовательской моделью профиля).
person Timmy O'Mahony    schedule 26.10.2011
comment
Большое спасибо за исчерпывающий ответ. На самом деле дело в том, что мне понадобится идентификатор электронной почты пользователя позже, но в первый раз я хотел бы, чтобы пользователь начал работать мгновенно. Позже, когда они получат доступ к функциям, для которых требуется их электронная почта, я всегда могу попросить их об этом. Также, когда они будут создавать свой профиль, они будут заполнять электронную почту. Я не хочу, чтобы они разочаровались в первый раз - person Sachin; 27.10.2011
comment
Во-вторых, можно ли что-нибудь сделать с проблемой пароля? И вы сказали, что мы можем связать несколько социальных логинов с одной и той же учетной записью или нет? Более того, поскольку я новичок в Django, у меня возникли некоторые проблемы с шаблонами, не могли бы вы указать мне хороший учебник по созданию шаблонов. Или какой должна быть хорошая форма входа как с социальным входом, так и с собственной регистрацией.... Также большое спасибо - person Sachin; 27.10.2011
comment
Спасибо за помощь. Я отправил вам электронное письмо на счет, указанный на вашем сайте. Спасибо - person Sachin; 27.10.2011
comment
Я просто промокну ноги с сосуществующими системами django-registration и django-social-auth. Отключает ли устранение 'social_auth.backends.pipeline.associate.associate_by_email' промежуточного программного обеспечения для проблем безопасности регистрацию django? - person Marc Condon; 02.02.2013