django-allauth社交帐户在登录时连接到现有帐户

安普萨布拉汉姆

我有一个自定义用户模型,并且正在使用django-allauth进行社交注册和登录。当用户使用已经使用电子邮件注册的社交帐户登录时,我试图将现有用户连接到新的社交帐户。我找到了此链接

def pre_social_login(self, request, sociallogin):
    user = sociallogin.account.user
    if user.id:
        return
    try:
        customer = Customer.objects.get(email=user.email)
    except Customer.DoesNotExist:
        pass
    else:
        perform_login(request, customer, 'none')

但是,当我尝试通过社交帐户登录时出现错误。

RelatedObjectDoesNotExist at /accounts/facebook/login/callback/
SocialAccount has no user.

任何帮助将不胜感激。

我也知道其中的安全性问题。但是我仍然想尝试一下。

安普萨布拉汉姆

我设法通过稍微更改适配器的代码来使其工作。

adapter.py

from allauth.socialaccount.adapter import DefaultSocialAccountAdapter

class MySocialAccountAdapter(DefaultSocialAccountAdapter):
    def pre_social_login(self, request, sociallogin): 
        user = sociallogin.user
        if user.id:  
            return          
        try:
            customer = Customer.objects.get(email=user.email)  # if user exists, connect the account to the existing account and login
            sociallogin.state['process'] = 'connect'                
            perform_login(request, customer, 'none')
        except Customer.DoesNotExist:
            pass

如果是子类DefaultSocialAccountAdapter,我们必须SOCIALACCOUNT_ADAPTER = 'myapp.my_adapter.MySocialAccountAdapter'settings.py文件中指定

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django allauth建议删除社交帐户的方法

来自分类Dev

Django allauth建议的删除社交帐户的方法

来自分类Dev

Django allauth-具有自定义用户的多个社交帐户

来自分类Dev

Django-allauth:设置社交帐户后获取本地帐户

来自分类Dev

自定义django-allauth的社交帐户注册表单

来自分类Dev

如何在django-allauth的社交帐户注册流程中显示自定义表单

来自分类Dev

自定义django-allauth的社交帐户注册表单

来自分类Dev

django-allauth:检查用户是否使用社交帐户注册

来自分类Dev

如何知道是使用社交帐户登录还是在Django中登录网站

来自分类Dev

如何使用django-allauth禁用新帐户创建,但仍然允许现有用户登录?

来自分类Dev

记住关闭浏览器时的Django allauth社交登录

来自分类Dev

django 中的 allauth 帐户编辑

来自分类Dev

如何保存电子邮件等于用户名Allauth社交媒体帐户Django

来自分类Dev

将Twitter帐户连接到现有的Devise帐户

来自分类Dev

调试django-allauth社交网络登录失败

来自分类Dev

django allauth Facebook社交登录回调失败

来自分类Dev

在Django中创建帐户后无法登录

来自分类Dev

django i18n之前或之后的allauth帐户?

来自分类Dev

如何更改Django allauth中的“帐户已存在”消息?

来自分类Dev

如何在django allauth中允许用户删除帐户?

来自分类Dev

如何在django allauth中允许用户删除帐户?

来自分类Dev

Django中的社交登录

来自分类Dev

将服务连接到现有的流星帐户

来自分类Dev

MVC Owin身份将多个社交帐户链接到单个用户

来自分类Dev

使用laravel-socialite后端通过社交帐户快速登录的用户

来自分类Dev

Django allauth社交登录:使用注册的电子邮件自动链接社交网站配置文件

来自分类Dev

Django中的帐户激活

来自分类Dev

如何在登录时验证现有帐户的点击

来自分类Dev

如何将现有的Stripe帐户连接到我的平台帐户?

Related 相关文章

  1. 1

    Django allauth建议删除社交帐户的方法

  2. 2

    Django allauth建议的删除社交帐户的方法

  3. 3

    Django allauth-具有自定义用户的多个社交帐户

  4. 4

    Django-allauth:设置社交帐户后获取本地帐户

  5. 5

    自定义django-allauth的社交帐户注册表单

  6. 6

    如何在django-allauth的社交帐户注册流程中显示自定义表单

  7. 7

    自定义django-allauth的社交帐户注册表单

  8. 8

    django-allauth:检查用户是否使用社交帐户注册

  9. 9

    如何知道是使用社交帐户登录还是在Django中登录网站

  10. 10

    如何使用django-allauth禁用新帐户创建,但仍然允许现有用户登录?

  11. 11

    记住关闭浏览器时的Django allauth社交登录

  12. 12

    django 中的 allauth 帐户编辑

  13. 13

    如何保存电子邮件等于用户名Allauth社交媒体帐户Django

  14. 14

    将Twitter帐户连接到现有的Devise帐户

  15. 15

    调试django-allauth社交网络登录失败

  16. 16

    django allauth Facebook社交登录回调失败

  17. 17

    在Django中创建帐户后无法登录

  18. 18

    django i18n之前或之后的allauth帐户?

  19. 19

    如何更改Django allauth中的“帐户已存在”消息?

  20. 20

    如何在django allauth中允许用户删除帐户?

  21. 21

    如何在django allauth中允许用户删除帐户?

  22. 22

    Django中的社交登录

  23. 23

    将服务连接到现有的流星帐户

  24. 24

    MVC Owin身份将多个社交帐户链接到单个用户

  25. 25

    使用laravel-socialite后端通过社交帐户快速登录的用户

  26. 26

    Django allauth社交登录:使用注册的电子邮件自动链接社交网站配置文件

  27. 27

    Django中的帐户激活

  28. 28

    如何在登录时验证现有帐户的点击

  29. 29

    如何将现有的Stripe帐户连接到我的平台帐户?

热门标签

归档