我一直在尝试使用django-allauth来提供社会注册,但是我在为用户配置配置文件时遇到了麻烦。没有django-allauth的文档告诉
- 当用户通过第三方(如facebook)登录时如何创建django用户帐户
- 为该用户分配了什么用户名,使用了什么密码。
- 某些第三方提供商如Facebook提供了大量关于用户的信息,如他们的姓名,电子邮件等,所以我们如何获得它们并保存在用户帐户/配置文件
如果有人在他们的项目中使用过allauth,并能提供一些细节,那么这将非常有帮助。
我在我的项目中使用django_allauth。
(1)当用户通过第三方(如facebook)登录时,如何创建django用户帐户?
你应该看看:- 你的管理面板,看看当有人登录时会发生什么。
- 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中。