5

我一直在尝试使用django-allauth来提供社交注册,但我在为用户配置配置文件时遇到了麻烦。没有 django-allauth 的文档告诉

  1. 当用户通过 facebook 等第三方登录时如何创建 django 用户帐户
  2. 分配给该用户的用户名和使用的密码。
  3. 某些第三方提供商(例如 Facebook)提供了大量有关用户的信息,例如他们的姓名、电子邮件等,因此我们如何获取它们并将其保存在用户帐户/个人资料中

如果有人在他们的项目中使用过 allauth 并且可以提供一些详细信息,那将非常有帮助。

4

1 回答 1

11

我在我的项目中使用 django_allauth。

(1) 用户通过 facebook 等第三方登录时如何创建 django 用户帐户?

你应该看看:

  1. 您的管理面板,看看有人登录时会发生什么。
  2. allauth.facebook.views.login并尝试跟踪登录过程

它是这样的(简而言之):

  1. 当用户通过他的 Facebook 凭据登录您的网站时,他会获得一个访问令牌
  2. 此令牌保存在 FACEBOOK_ACCESS_TOKENS 表中(您可以在管理面板中看到它)
  3. 有了这个访问令牌并在 Facebook GraphApi 的帮助下,我们知道他的 social_id
  4. 当我们知道他的 social_id - 我们可以从我们的数据库中获得他的 Facebook 帐户
  5. 如果我们还没有将它保存在数据库中 - 我们将 Facebook 帐户保存在 FACEBOOK_ACCOUNTS 表中(管理面板中的 Facebook 帐户)
  6. 然后我们使用 Facebook 帐户中的数据在 USERS 表中创建一个用户。(您可以在管理面板的“用户”部分看到新用户)


(2) 分配给该用户的用户名和使用的密码是什么?

正如我之前提到的,在 Facebook GraphApi 的帮助下,我们获得了 Facebook 用户的用户名,并将其分配给用户配置文件 User.username


(3) 某些第三方提供商,例如 Facebook,提供了很多有关用户的信息,例如他们的姓名、电子邮件等,那么我们如何获取它们并将其保存在用户帐户/个人资料中?

再次 - Facebook GraphApi - 它为您提供所需的信息。

我已经在我的站点中集成了 django_allauth,它工作正常。如果您有更多问题,我将很乐意回答(如果可以的话)。


编辑- 对于头像支持...

我认为您必须查看django_allauth 设置,尤其是:

SOCIALACCOUNT_AVATAR_SUPPORT(= settings.INSTALLED_APPS 中的“头像”)

启用对 django-avatar 的支持。启用后,用户的个人资料图像会在注册时本地复制到 django-avatar。

于 2012-02-07T17:21:02.670 回答