Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 当用户通过社会注册登录时,allauth如何工作_Django_Registration_Social_User Profile_Django Allauth - Fatal编程技术网

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

Django 当用户通过社会注册登录时,allauth如何工作,django,registration,social,user-profile,django-allauth,Django,Registration,Social,User Profile,Django Allauth,我一直在尝试使用提供社会注册,但我在为用户配置配置文件时遇到问题。没有django allauth的文档说明 当用户通过第三方(如facebook)登录时,如何创建django用户帐户 分配给该用户的用户名和使用的密码 某些第三方提供商(如Facebook)提供了大量有关用户的信息,如他们的姓名、电子邮件等。因此,我们如何获取这些信息并保存在用户帐户/个人资料中 如果有人在他们的项目中使用过allauth,并且可以提供一些详细信息,那么它将非常有用。我在我的项目中使用django_allauth

我一直在尝试使用提供社会注册,但我在为用户配置配置文件时遇到问题。没有django allauth的文档说明

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

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

    我在我的项目中使用django_allauth

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

    您应该看看:

  • 您的管理面板并查看有人登录时发生的情况。
  • allauth.facebook.views.login并尝试跟踪登录过程
  • 它是这样的(用几句话):

  • 当用户通过其Facebook凭据登录您的站点时,他将获得一个访问令牌
  • 此令牌保存在FACEBOOK\u ACCESS\u令牌表中(您可以在管理面板中看到它)
  • 有了这个访问令牌,在Facebook GraphApi的帮助下,我们知道了他的社交id
  • 当我们知道他的社交id时,我们可以从我们的数据库中获得他的Facebook帐户
  • 如果我们还没有将其保存在数据库中-我们将Facebook帐户保存在Facebook_ACCOUNTS表中(管理面板中的Facebook帐户)
  • 然后,我们使用Facebook帐户中的数据在USERS表中创建一个用户。(您可以在“管理”面板的“用户”部分中看到新用户)

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

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


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

    同样,Facebook GraphApi可以为您提供所需的信息

    我已经将django_allauth集成到我的站点中,它工作正常。如果你有更多的问题,我很乐意回答。


    编辑-对于头像支持

    我认为您必须了解以下方面:

    SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS) SOCIALACCOUNT\u AVATAR\u支持(=设置中的“AVATAR”。已安装的应用程序) 启用对django化身的支持。启用时,的配置文件映像 用户在注册时被本地复制到django化身中


    虽然我最终找到了答案,但还是非常感谢您提供的所有信息。只有一件事我不知道怎么解决。目前,我配置了该应用程序,使其能够从facebook个人资料中获取图像,但我意识到该图像未保存,因此,如果用户尝试更改化身,则来自社交身份验证的图像将丢失。有没有办法保留它?谢谢你提供的信息,你知道有没有办法在同一台django服务器上增加对多个facebook应用程序的支持?