您的位置:首页 > 其它

【问题解决】Auth 2.0 登录成功回调方法

2017-07-26 20:39 211 查看

絮絮叨

第三方的登录的解决方案通常有两种方式,一是打开一个新的标签页,然后登录回调回来; 二是通过父窗口打开一个子窗体去第三方登录,登陆成功时关掉子窗体回到父窗口。



问题来了

我的父窗体怎么样才知道子窗体被关闭了呢?

查了下 w3c 里面的文档,貌似并没有类似 onWindowClose 这样的回调函数。

解决方案

将打开的这个窗口对象赋值给一个 jQuery 对象,在主窗体里轮询判断该对象的状态

1.打开第三方登录窗口

var windowObj  = null;
windowObj  = window.open("https://graph.qq.com/oauth/show?which=Login&client_id=1000001&redirect_uri=http://127.0.0.1:3000/login/qq_after_login", "q",'width=800,height=500');


2.在子窗体中登录成功时执行关闭自己的方法

self.close();

3.然后在主窗体里面轮询执行

var loop = setInterval(function() {
if(windowObj  != null && windowObj.closed) {
clearInterval(loop);
//do something 在这里执行回调

}
}, 800);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐