QQ登录

1、QQLoginTool工具

1.1、安装

# 安装 QQLoginTool 工具类: 
pip install QQLoginTool -i https://pypi.tuna.tsinghua.edu.cn/simple

1.2、使用说明

1.2.1、导入

# 使用时, 需要导入该包:
# 我们可以从下载的 QQLoginTool 中导入 OAuthQQ:
from QQLoginTool.QQtool import OAuthQQ

1.2.2、初始化 OAuthQQ 对象

# 创建对象
# 创建对象的时候, 需要传递四个参数: 
oauth = OAuthQQ(
    client_id=settings.QQ_CLIENT_ID,  # QQ互联申请的客户端id
    client_secret=settings.QQ_CLIENT_SECRET,  # 申请的客户端的密钥
    redirect_uri=settings.QQ_REDIRECT_URI,  # 申请时添加的:扫码验证成功后的回调路径
    state=None  # 用户完成整个登录流程后,跳转到的页面
)

1.2.3、对象提供方法一:获取QQurl地址

获取 QQ 登录扫码页面,扫码后得到Authorization Code( 特许码 )
# 调用对象的 get_qq_url() 函数, 获取对应的扫码页面: 
login_url = oauth.get_qq_url()

1.2.4、对象提供方法二:获取QQ的access_token

通过上面一个函数获取的 Authorization Code 再获取 Access Token

# 调用对象的方法, 根据 code 获取 access_token: 
access_token = oauth.get_access_token(code)

1.2.5、对象提供的方法三:获取QQ的openid

通过上面一个函数获取的 Access Token 再获取 OpenID

# 调用对象的方法, 根据 access_token 获取 openid: 
openid = oauth.get_open_id(access_token)

2、QQ登录

QQ登录流程

qq登陆图示

基本逻辑:

  1. 获取QQ登录地址
    • OAuthQQ对象的get_qq_url()
  2. 扫码或输入账号密码
    • 给用户返回code
    • 用户携带code请求接口2进行
  3. 验证用户的code的有效性
    • 根据code获取access_token和openid的成功与否来判定
  4. 根据code获取access_token,根据access_token获取openid
  5. 判断用户是否绑定QQ
    • 是:直接状态保持登录
    • 否:加密token并返回调用接口3
  6. 根据用户输入的手机号…判断是否已注册账号
    • 是:直接绑定,登录
    • 否:新建绑定,登录















posted on 2020-09-07 15:06  yycnblog  阅读(938)  评论(0)    收藏  举报

导航