原文链接: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;
}