原文鏈接:https://dsx2016.com/?p=1109
公衆號:大師兄2016
需求場景
微信第三臺平臺只能綁定一個域名.
當從另一個域名下的系統進行綁定操作時,只能以打開指定域名的方式進行二維碼掃碼授權.
同時又需要保持當前的訪問狀態不被影響,所以在pc
端使用打開新窗口的方式.
授權成功後需要跳轉一個回調地址,打開url
的時候retunUrl
是網址的參數形式,不論是傳參給後端還是新網頁,都要進行一次編碼轉化
新窗口
當前網頁加載
window.location.href="https://dsx2016.com"
新窗口加載
window.open("https://dsx2016.com");
base64
轉碼url
當url
攜帶有http
網址參數的時候,對url
進行base64
編碼解碼
https://dsx2016.com?id=123&returnUrl=https://dsx2016.com/returnPage
字符串轉base64
function encode(str){
// 將字符串編碼
var encodeStr = encodeURI(str);
// 轉化爲base64
var base64 = btoa(encodeStr);
return base64;
}
base64
轉字符串
function decode(base64){
// base64解碼
var decodeStr = atob(base64);
// 轉字符串
var str = decodeURI(decodeStr);
return str;
}