【問題解決】Auth 2.0 登錄成功回調方法

絮絮叨

第三方的登錄的解決方案通常有兩種方式,一是打開一個新的標籤頁,然後登錄回調回來; 二是通過父窗口打開一個子窗體去第三方登錄,登陸成功時關掉子窗體回到父窗口。

這裏寫圖片描述

問題來了

我的父窗體怎麼樣才知道子窗體被關閉了呢?
查了下 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); 
發佈了143 篇原創文章 · 獲贊 143 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章