首页 > 编程知识 正文

python实现qq登录界面,QQ第三方登录

时间:2023-05-06 08:15:50 阅读:219086 作者:3817

实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。注册方法可参考:链接

成为QQ互联开发者后,还需创建应用,即获取本项目对应与QQ互联的应用ID,创建应用的方法参考:链接

QQ登录开发文档链接:QQAPI

具体代码仅供参考,具体配置代码中以 XXXXX代替,参考官方文档进行配置 # urllib.parse.urlencode(query) 将query字典转换为url路径中的查询字符串from urllib.parse import urlencode QQ_APP_ID = 'XXXXXXXXX' # 创建应用时的详情请参考文档QQ_APP_KEY = 'XXXXXXXXXX'QQ_REDIRECT_URL = 'http://XXXXXXXXX'QQ_STATE = 'XXXXXXXXX'class OAuthQQ(): """ 用于QQ登陆的工具类,提供了QQ登陆可能用到的方法 """ def __init__(self, app_id=None, app_key=None, redirect_uri=None, state=None): self.app_id = app_id or QQ_APP_ID self.app_key = app_key or QQ_APP_KEY self.redirect_uri = redirect_uri or QQ_REDIRECT_URL self.state = state or '/' # 用于保存登录成功后的跳转页面路径 def generate_qq_login_url(self): """ 用户QQ登陆的链接地址 :return: 返回链接地址 """ params = { 'response_type': 'code', 'client_id': self.app_id, 'redirect_uri': self.redirect_uri, 'state': self.state, 'scope': 'get_user_info', # 获取用户QQ的openID } url = 'https://graph.qq.com/oauth2.0/authorize?' + urlencode(params)from rest_framework.response import Responsefrom rest_framework.views import APIViewclass OAuthQQUrlView(APIView): """提供前段的url,访问QQ服务器 前段请求的网址 state 是前段传递,值是前段登陆成功后,后端引导的页面 /oauth/qq/authorization/?state=aaaaaaa """ def get(self,request): # 提取state参数, state = request.query_params.get("state") if not state: # 如果前段为指明引导的页面, 设定登陆成功后跳转到主页 state = '/' # 凭借QQ的接口文档,拼接为QQ登陆的链接网址 oauth_url = OAuthQQ(state=state) login_url = oauth_url.generate_qq_login_url() # 返回链接地址 return Response({"oauth_url":login_url})

 

仅供参考:

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。