web网站java实现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第三方登录相关推荐
- Java 实现QQ第三方登录
前言:很多时候我们都需要如下的第三方登录,用QQ帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户. 下面让我们来实现吧,可以参考官网文档,也可以看我下面的操作说明 QQ第三方登录接入指 ...
- Vue + Java 实现QQ第三方登录授权
一.前言 Vue 实现QQ第三方登录授权需要获取到 APP_ID和回调域地址,关于这2个的获取方式可以参考小编的另外一篇文章 Java 实现QQ第三方登录 温馨小提示: 本文基于springboot+ ...
- Java实现QQ第三方登录
前期准备工作 1.云服务器 2.备案的域名 3.本地调试需要修改hosts文件,将域名映射到127.0.0.1 如何修改hosts文件:https://www.cnblogs.com/toSeeMyD ...
- Java实现QQ第三方登录,linux实用教程第三版於岳
| province | 省(当pf=qzone.pengyou或qplus时返回). | | city | 市(当pf=qzone.pengyou或qplus时返回). | | figureurl ...
- Java Web 实现 QQ第三方登录
java web 实现QQ第三方登录功能 首先点击该链接进入腾讯开放平台 ,注册成为开发者 2.注册成功后到这个页面 3.创建web应用 4.填写基本信息(以前的这里会让你填写回调地址 ,现在改了) ...
- web接入QQ第三方登录
原文地址:https://blog.csdn.net/cwfjimogudan/article/details/54135957 这是第三方登录的第二篇,关于web接入微博第三方登录可以参考我之前的博 ...
- maven的web工程QQ第三方登录HTML、
声明.使用JDK9.idea2018.02 .maven3.5.4.tomcat9 maven的web工程QQ第三方登录接口引入,听起来简单,做完以后也很简单,这里使用 java SDK : 写的文 ...
- 使用QQ互联完成网站的QQ第三方登录(详解+坑)
前言:网站收尾工作,就只剩下第三方登录,去QQ互联注册,提交资料,审核了快一周,创建应用,一直创建不了,后来才发现是QQ互联的问题,耽误了两天又开始创建应用,终于弄好了,建议大家使用QQ第三方的,一定 ...
- java实现支付宝第三方登录_Java 实现QQ第三方登录(附赠:完整代码)
老铁,转发+关注+私信 获取完整代码 前言:很多时候我们都需要如下的第三方登录,用QQ帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户. 下面让我们来实现吧,可以参考官网文档,也可以看我下 ...
最新文章
- oppo怎么广告接入_OPPO游戏的承转启合,携手开发者迎接万物互融时代
- 2月书讯 | 冬奥结束看什么?看看“天花板”级别新作!
- C++ string流
- 配置MySQL的环境变量
- 明略数据(现在)是一家怎样的公司?
- 华为牛人在华为工作十年的感悟!--总结[华为的10年工作]
- youphp学习整理
- CS224N刷题——Assignment2.1_TensorflowSoftmax
- javascript之querySelector和querySelectorAll
- 安装LuaRocks
- High-Dimensional Statistics A Non-Asymptotic Viewpoint by Martin J. Wainwright Exercise7.3
- Teststand 界面打不开问题解决
- 神经网络建模的适用范围,神经网络建模步骤视频
- HDU 1290 献给杭电五十周年校庆的礼物(空间分割)
- 卸载完mathtype后,word加载项中还是有mathtype的解决方法
- ICPC北美中部赛区资格赛总结
- ZigBee无线温度传感网络设计
- 【理解数据结构】队列的实现(C语言)
- 机器人genghis_iRobot的智慧家居:从扫地机器人和擦地机器人的联动开始
- TRUST 2018可信区块链峰会即将召开