django-allauth有很多第三方登录的集成确没有qq第三方登录,是因为qq的第三方登录需要用access_token获取openid后才能继续获取用户信息,比其他平台多了一步,具体可以看我写的QQ第三方登录流程。
首先在allauth的目录...\allauth\socialaccount\providers\
下面新建qq文件夹,创建provider.py、urls.py、views.py文件
########provider.py#########
from allauth.socialaccount.providers.base import ProviderAccount
from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
class QQAccount(ProviderAccount):
def get_profile_url(self):
return 'https://graph.qq.com/user/get_user_info'
def get_avatar_url(self):
return self.account.extra_data.get('figureurl_