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

Sac*_*hin 4 django social registration user-profile django-allauth

我一直在尝试使用django-allauth来提供社交注册,但是我无法为用户配置配置文件.没有django-allauth的文件说明

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

如果有人在他们的项目中使用allauth并且可以提供一些细节,那么它将非常有用.

for*_*bdn 10

我在我的项目中使用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. 然后我们在USERS表中创建一个用户,其中包含Facebook帐户中的数据.(您可以在管理面板的"用户"部分中看到新用户)


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

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


(3)某些第三方提供商(如Facebook)提供了大量有关用户的信息,如他们的名字,电子邮件等.那么我们如何获得它们并保存在用户帐户/个人资料中?

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

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


编辑 - 为头像支持...

我想你必须看看django_allauth设置,尤其是:

SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS)

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