我有一个自定义的用户模型,我使用django allauth进行社会注册和登录。 当用户使用已使用电子邮件注册的社交帐户登录时,我正在尝试将现有用户连接到新的社交帐户。我找到这个link。
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.
任何帮助都将不胜感激。
我也知道这里面的安全问题。但我还是想试试这个。
我找到了下面的解决方案here,它还检查电子邮件地址是否已验证。
如果您更愿意跳过验证步骤,我认为此解决方案更好:
我通过稍微更改适配器的代码来实现这一点。
适配器.py
如果子类化
DefaultSocialAccountAdapter
,我们必须在settings.py
文件中指定SOCIALACCOUNT_ADAPTER = 'myapp.my_adapter.MySocialAccountAdapter'
相关问题 更多 >
编程相关推荐