Подтвердить что ты не робот

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

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

Просьба сообщить

Update:

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

4b9b3361

Ответ 1

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

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

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

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

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

EDIT:

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

  • django-social-auth стал python-social-auth
  • django-allauth: OP упомянул django-allauth, который недавно получил популярность. Я не использовал его, но, похоже, это отличная замена для аутентификации, регистрации и профилей.
  • Конфигурируемые пользовательские модели. Django 1.5 представил конфигурационные модели пользователей в модуле auth, чтобы теперь вы могли редактировать, какие поля вы хотите использовать для своего пользователя (только по электронной почте, без имени пользователя и т.д.). Это также полезно, если вы хотите добавить информацию, подобную профилю, пользователю без необходимости присоединяться к другой таблице (например, с помощью django-profiles или отношения OneToOne с настраиваемой моделью профиля)