当用户通过社交注册登录时,allauth如何工作

时间:2011-12-12 21:22:23

标签: django registration social user-profile django-allauth

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

  1. 当用户通过第三方(例如facebook)登录时,如何创建django用户帐户
  2. 为该用户分配了哪些用户名以及使用了哪些密码。
  3. 某些第三方提供商(如Facebook)提供了大量有关用户的信息,例如他们的姓名,电子邮件等。因此我们如何获取这些信息并保存在用户帐户/个人资料中
  4. 如果有人在他们的项目中使用allauth并且可以提供一些细节,那么它将非常有帮助。

1 个答案:

答案 0 :(得分:10)

我在我的项目中使用django_allauth。

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

你应该看一下:

  1. 您的管理面板,看看当有人登录时会发生什么。
  2. allauth.facebook.views.login 并尝试跟踪登录过程
  3. 就像这样(用几句话):

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

    7. (2)为该用户分配了哪些用户名以及使用了哪些密码?

      正如我之前在Facebook GraphApi的帮助下提到的,我们获得了Facebook用户的用户名,并将其作为User.username分配给用户个人资料


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

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

      我在我的网站中集成了django_allauth,但它运行正常。如果您有更多问题,我会很乐意回答(如果可以的话)。


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

      我认为你必须看看django_allauth settings,尤其是:

      SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS)
        

      启用对django-avatar的支持。启用时,配置文件图像   在注册时将用户本地复制到django-avatar。