2 lines
946 B
JavaScript
Executable File
2 lines
946 B
JavaScript
Executable File
const c="bind_wxwork";function a(e){return e.includes("work.weixin.qq.com")||e.includes("tencent.com")}function d(e,i){const r=(e.get("code")||"").trim();if(!r)return null;const t=(e.get("state")??"").trim(),o=t===i||t==="admin_bind_wx"||t.toLowerCase()===i.toLowerCase(),n=e.get("bind_wxwork")==="1";return o||n||t===""?{code:r}:null}function u(e){const i=e.wxBindState??c,r=t=>{if(!a(t.origin))return;const o=t.data;if(typeof o!="string"||!/^https?:\/\//i.test(o))return;let n;try{n=new URL(o)}catch{return}if(n.host!==window.location.host||!n.pathname.includes(e.pathIncludes))return;const s=d(new URLSearchParams(n.search),i);s&&sessionStorage.getItem(e.lockKey)!==s.code&&(t.stopImmediatePropagation(),sessionStorage.setItem(e.lockKey,s.code),Promise.resolve(e.onCode(s.code)).finally(()=>{sessionStorage.removeItem(e.lockKey)}))};return window.addEventListener("message",r,!0),()=>window.removeEventListener("message",r,!0)}export{u as a};
|