1. 点击3dm上的qq图标,浏览器跳转到,地址为:

https://graph.qq.com/oauth2.0/show ?which=Login &display=pc &response_type=code &client_id=310192173 &redirect_uri=http%3A%2F%2Fbbs.3dmgame.com%2Fconnect.php%3Fmod%3Dlogin%26op%3Dcallback%26referer%3Dforum.php &state=3f0e9fafcd1765a11b3cf568ecf618e1 &scope=get_user_info%2Cadd_share%2Cadd_t%2Cadd_pic_t%2Cget_repost_list

a. which和display是相关的业务参数
b. response_type表示授权类型,此处为授权码类型response_type=code

  1. 授权码(认证码)模式 (Authorization code) response_type=code
  2. 简化(隐形)模式 (Impilict) response_type=token
  3. 用户名密码模式 (Resource Owner Password Credential) grant_type=password
  4. 客户端模式 (Client Credential) grant_type=client_credential

c. client_id为3dm在qqOAuth2.0业务中的客户端Id,需要3dm在qq后台业务中申请的client_id=310192173,这样qq能获取到当前客户端身份
d. redirect_uri为OAuth2.0验证成功后前端需要跳转的地址http://bbs.3dmgame.com/connect.php?mod=login&op=callback&referer=forum.php
e. state为防止csrf攻击参数,需要3dm自己对其进行验证
f. score为业务参数,表示3dm需要获取哪几种业务授权

  1. qq登录成功后,跳转地址为

http://bbs.3dmgame.com/connect.php ?receive=yes &mod=login &op=callback &referer=forum.php &code=DC62BCBFD75CAC20E8C41EAFE3A2D65D &state=4b8408f6a7e4b9c0d47b462339076178
实际上是前面redirect_uri地址加上了另外的参数,OAuth2.0通用参数有
a. code即授权码(authorization_code),后面3dm可以运用code去qq交换访问令牌(access_token)
b. state防csrf参数,需要3dm自己进行验证

  1. 3dm拿到access_token后去qq交换访问令牌,此行为是服务器之间传输,前端是看不到的

链接 graph.qq.com/oauth2/get_token
参数 code=DC62BCBFD75CAC20E8C41EAFE3A2D65D&redirect_uri=https%3a%2f%2fbbs.3dmgame.com&client_id=310192173&grant_type=authorization_code&client_secret=******

a. grant_type为授权类型,此处为授权码类型
b. client_secret为3dm与qq约定的加密字符串

  1. qq会返回access_token信息给3dm,例如:
{
"access_token":"jj9gwvgk49gjvfdfg34ggbv",
"token_type":"Bearer",
"expireds_seconds":3600
}

3dm拿到access_toekn后与当前用户进行关联保存

    1. 当3dm需要去qq获取用户信息时,可以拿access_token与用户标识去请求qq,例如:
      链接 graph.qq.com/oauth2/get_user_info 参数

从bbs.3dmgame.com与qq的登录解析oauth2.0协议的更多相关文章

  1. 第三方登录过程—OAuth2.0协议

    ---恢复内容开始--- 理清思路 1.在第三方注册成为开发者,拿到第三方给的client_id(app_id---就像你的身份证.QQ号)和client_secret(就像你的QQ密码): 2.填写 ...

  2. 那些年,我们开发的接口之:QQ登录(OAuth2.0)

    那些年,我们开发的接口之:QQ登录(OAuth2.0) 吴剑 2013-06-14 原创文章,转载必须注明出处:http://www.cnblogs.com/wu-jian 前言 开发这些年,做过很多 ...

  3. QQ登录(OAuth2.0)

    QQ登录(OAuth2.0) 那些年,我们开发的接口之:QQ登录(OAuth2.0) 吴剑 2013-06-14 原创文章,转载必须注明出处:http://www.cnblogs.com/wujian ...

  4. QQ登录整合/oauth2.0认证-04-调整到QQ互联进行QQ登录

    ---------------------------------目录------------------------------------- QQ登录整合/oauth2.0认证-03-对第二节的代 ...

  5. QQ登录整合/oauth2.0认证-03-对第二节的代码改进

    ---------------------------目录---------------------------------- QQ登录整合/oauth2.0认证-01-申请appkey和appid ...

  6. QQ登录整合/oauth2.0认证-02-跳转到QQ互联页

    ---------------------------目录---------------------------------- QQ登录整合/oauth2.0认证-01-申请appkey和appid ...

  7. 使用OAuth2.0协议的github、QQ、weibo第三方登录接入总结

    目录 第三方接入总结 OAuth2.0介绍 github OAuth2.0登录接入 国内第三方应用商SDK使用 微博SDK 腾讯QQ SDK passport.js插件使用 安装 相关中间件.路由 返 ...

  8. 微信开放平台开发——网页微信扫码登录(OAuth2.0)

    1.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提供 ...

  9. 微信公众平台开发——微信授权登录(OAuth2.0)

    1.OAuth2.0简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户 ...

随机推荐

  1. VMware Workstation Pro工具

    安装包 链接:https://pan.baidu.com/s/1n-URb83lHtric3Ds8UbF9Q 提取码:c9z5 密钥 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7 ...

  2. 复习node中加载静态资源--用express+esj

    不做解释,代码一看就懂 app.js import express from 'express' import config from './config' const app = express() ...

  3. 【已解决】redis-py-cluster安装成功但导入失败,提示cannot import name b

    背景: 一直跑的好好的自动化突然跑不起来了,提示是在导包的时候发生错误 发生错误的行是 from rediscluster import StrictRedisCluster 提示信息如下 检查安装包 ...

  4. PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分) (排序)

    给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...

  5. Hdu1042 N! (阶乘高精度模板)

    Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!   Input One N in ...

  6. (备份)找回 Chrome 配置

    C:\Users\xiaogezi.cn\AppData\Local\Google\Chrome\User Data\Default\ 将 Preferences 文件复制到别的地方,用于备份: 将 ...

  7. Ueditor1.4.3.3 asp UTF-8版文件缺失修改方法

    前几天在做一个项目中需要用富文本编辑器,最终选定用Ueditor编辑器,从官网下载源码(http://ueditor.baidu.com/website/download.html),按照文档创建de ...

  8. python开发第四篇:函数(1)

    函数 阅读目录 一 函数知识体系 二 函数基础 三 函数对象.函数嵌套.名称空间与作用域.装饰器 四 迭代器.生成器.面向过程编程 五 三元表达式.列表推导式.生成器表达式.递归.匿名函数.内置函数 ...

  9. 微信小程序自定义顶部导航

    注释:自定义导航需要自备相应图片 一.设置自定义顶部导航 Navigation是小程序的顶部导航组件,当页面配置navigationStyle设置为custom的时候可以使用此组件替代原生导航栏. 1 ...

  10. ubantu安装apache

    1.命令安装: sudo apt install apache2 2.检查是否启动了Apache服务 systemctl status apache2 3.开启.关闭和重启服务器 /etc/init. ...