当用户通过社会注册登录时,allauth是如何工作的?



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

  1. 当用户通过第三方(如facebook)登录时如何创建django用户帐户
  2. 为该用户分配了什么用户名,使用了什么密码。
  3. 某些第三方提供商如Facebook提供了大量关于用户的信息,如他们的姓名,电子邮件等,所以我们如何获得它们并保存在用户帐户/配置文件

如果有人在他们的项目中使用过allauth,并能提供一些细节,那么这将非常有帮助。

我在我的项目中使用django_allauth。

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

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

大致是这样的(简单地说):


    当用户通过他的Facebook凭据登录您的站点时,他会获得一个访问令牌

    这个令牌保存在FACEBOOK_ACCESS_TOKENS表中(您可以在管理面板中看到它)
    有了这个访问令牌,在Facebook GraphApi的帮助下,我们知道他的social_id

    当我们知道他的social_id -我们可以从我们的数据库中获得他的Facebook帐户

    如果我们还没有在数据库中保存它-我们保存Facebook帐户在FACEBOOK_ACCOUNTS表(Facebook帐户在管理面板)
    然后,我们在USERS表中使用Facebook帐户中的数据创建一个用户。(您可以在管理面板的Users部分看到新用户)


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


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

再次- Facebook GraphApi -它得到你需要的信息。

我已经集成了djjango_allauth在我的网站,它是正常工作。如果你有更多的问题,我很乐意回答。


EDIT -为头像支持…

我想你应该看看django的设置,特别是:

SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS)

启用django-avatar支持。的配置文件映像用户在注册时被本地复制到django-avatar中。

最新更新