前言
最近在弄第三方登录,实现起来很简单,就是调几个接口获取个人信息即可,详细了解:maven项目整合QQauth2.0第三方登录详细说明,然后因为本网站是前后端分离的,所以不能再回调接口那里直接跳转到我想要的页面,因为我的接口都是通过Ajax进行前后端通信的,查阅了很多资料,有说用websocket的,有用前后端验证的,众说纷纭等等,然后我就想,可不可以让第三方应用的回调地址是一个html,然后我在html再调接口呢,这样就把主动权交在我手里了,答案是肯定的,所以下面就教大家在网站是前后端分离如何实现QQ微信等第三方登陆。
详细步骤
第一步:在第三方应用申请登录接口,在回调一栏写上本网站的一个负责跳转的html,如下图所示
第二步:在前端利用window.open打开qq登录页面,这个qq登录页需要从后台获取,详情参考:maven项目整合QQauth2.0第三方登录详细说明//发送验证码
function qqLogin() {
$.ajax({
type: "GET",
url: baseContext.path + "user/getCode",
success: function (data) {
var winObj=window.open(data, 'qq登录', 'height=800, width=600, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
//循环监听,知道子页面啥时候关闭,只要关闭了就跳转到指定页面
var loop = setInterval(function() {
if(winObj.closed) {
clearInterval(loop);
window.location.href="newindex.html";
}
}, 500);
},
error: function () {
layer.alert('连接失败', {
icon: 2,
skin: 'layer-ext-moon'
});
}
});
}
第三步:输入密码后,qq会请求你的回调地址,这时就跳转到你写的那个登录跳转页了,这时就需要在那个页面请求后台接口,根据qq的code,获取access_token,openId,个人信息了,具体参考:maven项目整合QQauth2.0第三方登录详细说明$(functio