有人同时使用过django-social-auth、django-registration和django-profiles吗?他们配合得好吗?我已经建立了社会权威,但我在某处读到django-allauth更好。我应该切换到那个吗?
请通知
更新:
我在我的项目中使用了allauth
,它工作得很好。你不需要用django-registration
和allauth,因为那是集成在里面的。然而,我使用自定义用户配置文件,这是一个比django-profiles
更好的选择。
它们一起工作得很好——我前几天才设置好这个(除了我不需要使用django-profiles,因为它很容易创建你自己的)。
- 用户可以使用django-registration创建一个普通帐户(contrib.auth),它会发送一封邮件来确认-在数据库中创建用户名/电子邮件/密码。 或者,他们可以直接登录twitter/facebook/google等,然后捐款。使用虚拟密码(可能没有电子邮件)自动为它们创建Auth用户。
注意事项和限制:
- 当您使用社交媒体配置文件登录时,将自动创建一个contrib.auth.user。如果该用户名已经存在,则会附加一个UUID——这很难看,而且django-social-auth似乎还不能处理这个问题——一个简单的解决方案是允许用户在注册后更改用户名。理想情况下,当你登录twitter时,你有机会在它们被保存到DB之前(而不是之后)完善你的详细信息。 类似地,设置了一个虚拟密码——这使得用户很难使用内置的django密码更改表单来重置密码,因为他们将无法输入他们现有的密码(因为它被设置为一个不可磨灭的字符串)
- 你需要考虑当一个用户注册了twitter以后想要关联他们的facebook帐户- django-social-auth帐户,这很容易关联多个第三方登录与一个帐户
- Twitter没有披露用户的电子邮件地址,所以你可能想要提示他们提供给你并将其保存到数据库中——这样做的问题是,你需要验证它,这否定了使用社交认证的整个目的!
django-social-auth是一个伟大的项目,并且正在与convore Google group上的组积极开发,该组总是最新的,所以我当然会建议它。设置也很容易,只要确保您已经解决了登录流程,并且知道使用
这篇文章有点过时
- django-social-auth变成了python-social-auth
- django-allauth: OP提到了最近比较流行的django-allauth。我没有使用过它,但它似乎是一个伟大的替代身份验证,注册和配置文件。
- 可配置的用户模型: Django 1.5在
auth
模块中引入了一个可配置的用户模型,所以你现在可以编辑你想要为你的用户使用的字段(只有电子邮件,没有用户名等)。如果你想向用户添加类似于配置文件的信息,而不需要与另一个表连接(就像使用django-profiles或与自定义配置文件模型建立OneToOne
关系一样),这也很有用。