django-social-auth django-registration 和 django-profiles -- 一起

标签 django django-registration django-socialauth

有没有人用过django-social-auth , django-registrationdjango-profiles一起。他们一起工作好吗?我已经建立了social-auth,但我在某处读到django-allauth更好。我应该切换到那个吗?

请指教

更新:

我用过allauth在我的项目中,它工作正常。您不需要使用 django-registration与allauth,因为它集成在其中。但是,我使用的是自定义用户配置文件,这比 django-profiles 更好。 .

最佳答案

他们一起工作得很好——我前几天刚刚设置好了(除了我不需要使用 django-profiles,因为它很容易创建你自己的)。

  • 用户可以使用 django-registration 设置一个普通帐户(contrib.auth),该帐户会发送一封待确认的电子邮件 - 在数据库中创建用户名/电子邮件/密码。
  • 或者,他们可以直接使用 twitter/facebook/google 等登录,并使用虚拟密码(可能没有电子邮件)自动为他们创建一个 contrib.auth 用户。

  • 一些要点和限制:
  • 当您使用社交媒体资料登录时,会自动创建一个 contrib.auth.user。如果该用户名已经存在,则附加一个 UUID - 这很难看,django-social-auth 似乎还没有解决这个问题 - 一个简单的解决方案是允许用户在注册后更改他们的用户名 。理想情况下,当您使用 twitter 登录时,您有机会在将详细信息保存到数据库之前(而不是之后)完善您的详细信息
  • 同样,设置了一个虚拟密码 - 这使得用户很难使用内置的 django 密码更改表单重置密码,因为他们将无法输入现有密码(因为它被设置为 unhashble 字符串)
  • 您需要考虑何时注册 twitter 的用户想要稍后关联他们的 Facebook 帐户 - django-social-auth 帐户为此而很容易将多个第 3 方登录与一个帐户相关联
  • Twitter 没有透露用户的电子邮件地址,因此您可能希望提示他们将其提供给您并将其保存到数据库中 - 问题是您将需要验证它,这否定了使用社交的全部目的-认证!

  • django-social-auth 是一个很棒的项目,并且正在与 convore Google Group 上的一个小组积极开发,该小组始终是最新的,所以我当然会推荐它。它也很容易设置 - 只要确保你已经解决了你的登录流程,并且你知道使用这个 的潜在限制

    编辑:

    这个帖子有点过时了
  • django-social-auth 已变为 python-social-auth
  • django-allauth : OP 提到了最近流行的 django-allauth。我没有使用过它,但它似乎是身份验证、注册和配置文件的一个很好的替代品。
  • 可配置的用户模型 :Django 1.5 在 auth 模块中引入了 configuratble User models,因此您现在可以编辑要为用户使用的字段(仅电子邮件,无用户名等)。如果您想在不必加入另一个表的情况下向用户添加类似配置文件的信息(就像您使用 django-profiles OneToOne 与自定义配置文件模型的关系一样),这也很有用)
  • 关于django-social-auth django-registration 和 django-profiles -- 一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905088/

    相关文章:

    python - 如何正确获取模板中登录 View 的 url?

    django - 如何在 Django 2 中将事件电子邮件请求从 gmail 发送到 Outlook

    Django:Django + django-registration + jinja 的 View 问题

    django 使用 django-registration 以 html 格式发送电子邮件

    Django 社交授权 : Google OAuth2 - only display emails from restricted domain list

    django - python-social-auth 未获取正确的 Google OAuth2 详细信息

    mysql - 无法通过 django 从 mysql 数据库执行并发请求; url 处出现接口(interface)错误 (0, '' )

    Django Admin list_filter 和带注释字段的排序

    Django 注册导入错误 : No module named signals

    django - 使用 django-social-auth 和 Facebook 身份验证失败