django-social-auth django-registration and django-profiles -



有人同时使用过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关系一样),这也很有用。

最新更新