擅长:python、mysql、java
<p>我通过稍微更改适配器的代码来实现这一点。</p>
<p>适配器.py</p>
<pre><code>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
</code></pre>
<p>如果子类化<code>DefaultSocialAccountAdapter</code>,我们必须在<code>settings.py</code>文件中指定<code>SOCIALACCOUNT_ADAPTER = 'myapp.my_adapter.MySocialAccountAdapter'</code></p>