最近一段时间实现了微博微信qq的第三方登录功能,现在写出来与大家分享一下

QQ

首先贴出qq官方文档

http://wiki.connect.qq.com/%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c_oauth2-0

第一步当然是获取appid和secret,这点就不赘述了

第二步,qq给出了自己的js  sdk,可以直接调用js获取用户基本信息。

文档:http://wiki.connect.qq.com/sdk%e4%b8%8b%e8%bd%bd

而你如果使用了这种操作方式,就会有一定的局限性(见下图)

红框内的意思是一旦给页面上的某个元素绑定了事件之后,当你点击该元素,就会元素后面出现一个按钮,再次点击才会跳转到qq登录授权页面。然后才能进行之后的步骤,而这一极大的导致了用户的体验(包括点击两次和页面多出按钮)

鉴于这种方式可能官方都觉得不太靠谱,下面又给出了另一种方式,见下图

该方法确实可以使用户在点击按钮时直接跳到登录授权页面,并且不限于id(当同一页面内有多个id需要绑定)。但是该方法也有缺点,那就是使用这个方式会弹出新页面,或许你会说无所谓,但是在某些极端情况下,如下图

当用户想要绑定qq时,点击弹出新页面,用户授权了还好说,按钮已经选上了,用户没有授权的话,关闭授权页面,这里已经勾选了,会给用户带来歧义。

如果你还是选择这种方式登录,那么文档下面的所有api你都可以使用了(见下图)

qq解除授权可以使用signOUt;

回调页面检测是否登录使用check

check完之后使用getMe获取个人信息;

鉴于业务需求我放弃了js sdk,采取了前端获取code,后台获取其余信息,js只是调用授权登录,代码如下

var url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=" + qqAppId + "&redirect_uri=" + encodeURIComponent(qqRedirectURI) + "&state=1"
window.location.href=url;

采用直接访问url 使用时将qqAppId和qqRedirectURI换为自己的就行了,至于后面的state是回调页面的参数,可以做一些小操作

然后用户授权成功后,会跳回回调地址页,返回code和state。如果授权失败,不会返回code。

之后就是把code传到后台获取token和后面的等等

具体可以参考https://blog.csdn.net/a992970569/article/details/82107899,里面有很详细的接口详细说明。

总的来说就是授权登录获取到code,根据code获取Access Token,根据token就可以调接口获取openId(用户唯一标识)和用户信息了

另外,web网站在手机上打开会直接调用手机qq登录(很方便,不像微信)

以上图片都在qq官方文档中有详细说明;

移步http://wiki.connect.qq.com/%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c_oauth2-0

关于web网站的分享功能,在除了微信和qq内部,我们可以使用将当前页面url生成二维码提示用户扫码分享;在微信qq内部可以提示点击右上角分享,如何判断对应环境可以查看我的另外一篇文章-->链接

web网站java实现QQ第三方登录相关推荐

  1. Java 实现QQ第三方登录

    前言:很多时候我们都需要如下的第三方登录,用QQ帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户. 下面让我们来实现吧,可以参考官网文档,也可以看我下面的操作说明   QQ第三方登录接入指 ...

  2. Vue + Java 实现QQ第三方登录授权

    一.前言 Vue 实现QQ第三方登录授权需要获取到 APP_ID和回调域地址,关于这2个的获取方式可以参考小编的另外一篇文章 Java 实现QQ第三方登录 温馨小提示: 本文基于springboot+ ...

  3. Java实现QQ第三方登录

    前期准备工作 1.云服务器 2.备案的域名 3.本地调试需要修改hosts文件,将域名映射到127.0.0.1 如何修改hosts文件:https://www.cnblogs.com/toSeeMyD ...

  4. Java实现QQ第三方登录,linux实用教程第三版於岳

    | province | 省(当pf=qzone.pengyou或qplus时返回). | | city | 市(当pf=qzone.pengyou或qplus时返回). | | figureurl ...

  5. Java Web 实现 QQ第三方登录

    java web 实现QQ第三方登录功能 首先点击该链接进入腾讯开放平台 ,注册成为开发者 2.注册成功后到这个页面 3.创建web应用 4.填写基本信息(以前的这里会让你填写回调地址 ,现在改了) ...

  6. web接入QQ第三方登录

    原文地址:https://blog.csdn.net/cwfjimogudan/article/details/54135957 这是第三方登录的第二篇,关于web接入微博第三方登录可以参考我之前的博 ...

  7. maven的web工程QQ第三方登录HTML、

    声明.使用JDK9.idea2018.02 .maven3.5.4.tomcat9  maven的web工程QQ第三方登录接口引入,听起来简单,做完以后也很简单,这里使用 java SDK : 写的文 ...

  8. 使用QQ互联完成网站的QQ第三方登录(详解+坑)

    前言:网站收尾工作,就只剩下第三方登录,去QQ互联注册,提交资料,审核了快一周,创建应用,一直创建不了,后来才发现是QQ互联的问题,耽误了两天又开始创建应用,终于弄好了,建议大家使用QQ第三方的,一定 ...

  9. java实现支付宝第三方登录_Java 实现QQ第三方登录(附赠:完整代码)

    老铁,转发+关注+私信 获取完整代码 前言:很多时候我们都需要如下的第三方登录,用QQ帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户. 下面让我们来实现吧,可以参考官网文档,也可以看我下 ...

最新文章

  1. oppo怎么广告接入_OPPO游戏的承转启合,携手开发者迎接万物互融时代
  2. 2月书讯 | 冬奥结束看什么?看看“天花板”级别新作!
  3. C++ string流
  4. 配置MySQL的环境变量
  5. 明略数据(现在)是一家怎样的公司?
  6. 华为牛人在华为工作十年的感悟!--总结[华为的10年工作]
  7. youphp学习整理
  8. CS224N刷题——Assignment2.1_TensorflowSoftmax
  9. javascript之querySelector和querySelectorAll
  10. 安装LuaRocks
  11. High-Dimensional Statistics A Non-Asymptotic Viewpoint by Martin J. Wainwright Exercise7.3
  12. Teststand 界面打不开问题解决
  13. 神经网络建模的适用范围,神经网络建模步骤视频
  14. HDU 1290 献给杭电五十周年校庆的礼物(空间分割)
  15. 卸载完mathtype后,word加载项中还是有mathtype的解决方法
  16. ICPC北美中部赛区资格赛总结
  17. ZigBee无线温度传感网络设计
  18. 【理解数据结构】队列的实现(C语言)
  19. 机器人genghis_iRobot的智慧家居:从扫地机器人和擦地机器人的联动开始
  20. TRUST 2018可信区块链峰会即将召开

热门文章

  1. 贴吧上的图片要怎么批量保存到电脑中
  2. VB中windows API StretchBlt,BitBlt的应用
  3. 算法导论(c++实现)chapter4
  4. OC底层原理-Block
  5. Javascript FileSystemObject 读取/创建本地文件及目录文件夹的方法
  6. lspci是如何工作的
  7. 起航,新篇章!DATE WITH FUTURE
  8. www服务器把信息组织成什么,Internet与Intranet信息服务
  9. (AI)旋转波点练习
  10. hibernate mysql 多表查询_查询hibernate表程序