django-social-auth django-регистрация и django-профили - вместе - PullRequest
20 голосов
/ 26 октября 2011

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

Пожалуйста, сообщите

Обновление:

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

1 Ответ

34 голосов
/ 27 октября 2011

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

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

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

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

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

РЕДАКТИРОВАТЬ:

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

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