1import{d as ne,g as re,ae as ce,i as t,c as ue,k as ie,l as m,o as f,y as w,p as L,m as e,t as M,q as R,J as de,c1 as ve,c2 as pe,a5 as me,aq as I,c3 as D,W as fe,C as F,w as W,v as J,au as y,aa as _e,bU as Q,bF as ge,_ as he}from"./D1FcBL9p.js";import{_ as be}from"./EgekFmNJ.js";import{_ as ke}from"./D28JNWWP.js";import{c as we}from"./DkKlos9q.js";import{u as ye}from"./qJlnEoVS.js";import{s as Ce}from"./BySzvsyc.js";import"./DfaXuOzC.js";const Se=""+new URL("callback-success.B9QZqDJf.png",import.meta.url).href,Ue={class:"callback-container"},xe={key:0,class:"mcallback-loading"},Ae={key:1,class:"error-section"},Me={class:"error-message"},Ee={key:2,class:"success-section"},Te={key:3,class:"success-modal"},$e={class:"success-modal-content"},Le={class:"success-modal-body"},Ie=["src"],De={class:"success-modal-desc"},Oe={class:"mobile-bind-popup"},qe={class:"popup-body"},Pe={class:"form-item"},Ve={class:"phone-input-container"},Be={class:"country-code"},Ne={key:0,class:"error-text"},Re={class:"form-item"},Fe={class:"verify-code-wrapper"},We=["disabled"],Je={key:0,class:"error-text"},Qe={class:"popup-footer"},ze=["disabled"],Ge=ne({__name:"callback",setup(He){const _=re(),{wsCache:l}=de(),E=ce(),u=ye(),r=t(!0),O=t(!1),z=t(!1),q=t(""),U=t({}),g=t(!1),n=t(""),P=t(!1),G=t(Se),i=t(!1),H=t(""),C=t("+852"),d=t(""),h=t(""),S=t(),V=t("+852"),x=t(!1),v=t(0),T=t(!1),B=t(),K=ue(()=>{const s="æ¨æ¯æåçç¾æç¨æ¶,å·²æå飿¥ç¾æå¸³æ¶,以å¾å¯ä»¥éé";switch(n.value){case"google":return s+"Googleç»å
¥";case"facebook":return s+"Facebookç»å
¥";case"iamSmart":return s+"æºæ¹ä¾¿ç»å
¥";default:return s+"æºæ¹ä¾¿ç»å
¥"}}),Y=()=>{var s;(s=B.value)==null||s.open()},Z=s=>{V.value=s,C.value=s},j=async()=>{if(!P.value){P.value=!0;try{n.value=E.params.provider;const s=l.get("sso_source");console.log("å½å页é¢è·¯å¾:",E.fullPath||"");const{code:o,state:$,error:A}=ve(E),b=pe($||"");if(console.log("OAuth query",{hasCode:!!o,hasState:!!b}),A)throw new Error(`${n.value} ç»å½é误: ${A}`);if(n.value==="iamSmart"){if(!o)throw new Error("ç¼ºå°ææ¬åæ¸");const a=me(),p=s==="signin"?"/Signin":"/login";u.replace(a(`${p}?code=${encodeURIComponent(o)}&iamsmart=1`));return}if(!o||!b)throw new Error("缺å°å¿
è¦çææåæ°");let c=null;{if(!b)throw new Error("缺å°å¿
è¦çææåæ°");const a=l.get(`${n.value}_oauth_state`);if(l.delete(`${n.value}_oauth_state`),a!==b)throw new Error("å®å
¨éªè¯å¤±è´¥: ç¶æä»¤çä¸å¹é
");if(c=l.get("pkce_code_verifier"),l.delete("pkce_code_verifier"),!c)throw new Error("ç¼ºå° PKCE éªè¯å¨")}const k=s==="signin";if(n.value=="google"){const a=await I.post({url:"/app-api/user/member/auth/googleAuth",data:{code:o,codeVerifier:c,redirectUri:`${window.location.origin}/callback/${n.value}`,...D}});if(!a.canLogin||k&&a.socialUser){r.value=!1,i.value=!0,U.value=a.socialUser,S.value=30;return}if(console.log("response",a),await _.completeOAuthLogin(a),r.value=!1,l.delete("sso_source"),k)g.value=!0;else{const p=l.get("return_url")||"/";u.push(p)}}else if(n.value=="facebook"){const a=await I.post({url:"/app-api/user/member/auth/facebookAuth",data:{code:o,codeVerifier:c,redirectUri:`${window.location.origin}/callback/${n.value}`,...D}});if(!a.canLogin||k&&a.socialUser){r.value=!1,i.value=!0,U.value=a.socialUser,S.value=40;return}if(console.log("response",a),await _.completeOAuthLogin(a),r.value=!1,l.delete("sso_source"),k)g.value=!0;else{const p=l.get("return_url")||"/";u.push(p)}}else if(n.value=="iamSmart"){const a=await I.post({url:"/app-api/user/member/auth/iamSmartAuth",data:{code:o,redirectUri:`${window.location.origin}/callback/${n.value}`,...D}});if(!a.canLogin||k&&a.socialUser){r.value=!1,i.value=!0,U.value=a.socialUser,S.value=20;return}if(console.log("response",a),await _.completeOAuthLogin(a),r.value=!1,l.delete("sso_source"),k)g.value=!0;else{const p=l.get("return_url")||"/";u.push(p)}}}catch(s){console.error("OAuthåè°å¤ç失败:",s),r.value=!1,O.value=!0,q.value=(s==null?void 0:s.message)||"OAuthç»å½è¿ç¨ä¸åçé误"}}},X=async()=>{if(!C.value||!d.value){y({message:"è«è¼¸å
¥ææ©è碼",icon:"none"});return}x.value=!0;try{const s=await _e({phone:"("+C.value+")"+d.value,scene:30,loginMethod:S.value});Q(),s&&(y({message:"é©è碼已ç¼é",icon:"success",duration:3e3}),ee())}catch(s){console.error("åééªè¯ç 失败:",s),Q(),y({message:s.message,icon:"none",duration:3e3})}finally{x.value=!1}},ee=()=>{v.value=60;const s=Ce(()=>{v.value--,v.value<=0&&clearInterval(s)},1e3)},se=async()=>
1{if(!C.value||!d.value||!h.value){y({message:"请填å宿´ä¿¡æ¯",icon:"none"});return}T.value=!0;try{const s=await ge({mobile:"("+C.value+")"+d.value,code:h.value,socialUser:U.value});s.accessToken&&(_.setTokenInfo(s.data),await _.fetchUserInfo(),await _.fetchUserType(),i.value=!1,y({message:"ç¶å®æå",icon:"success"}),setTimeout(()=>{u.push("/")},1500))}catch(s){console.error("ç»å®ææºå·å¤±è´¥:",s),y({message:"ç¶å®å¤±æï¼è«é試",icon:"none"})}finally{T.value=!1}},N=()=>{i.value=!1,H.value="",h.value="",S.value="",v.value=0,u.replace("/login")},oe=()=>{l.delete("google_oauth_state"),l.delete("facebook_oauth_state"),l.delete("iamSmart_oauth_state"),l.delete("pkce_code_verifier"),u.replace("/login")},ae=()=>{g.value=!1,u.replace("/login")},te=s=>{console.error("å¾çå 载失败:",s);const o=s.target||s.currentTarget;o&&o.src&&console.log("å½åå¾çè·¯å¾:",o.src)},le=async()=>{g.value=!1,r.value=!1;const s=l.get("return_url")||"/";u.push(s)};return ie(()=>{j()}),(s,o)=>{const $=fe,A=be,b=ke;return f(),m("div",Ue,[r.value?(f(),m("div",xe,[...o[3]||(o[3]=[e("div",{class:"mcallback-loading__spin","aria-hidden":"true"},null,-1),e("p",{class:"mcallback-loading__hint"},"æ£å¨å¤çç»å½ï¼è¯·ç¨å...",-1)])])):w("",!0),O.value&&!r.value?(f(),m("div",Ae,[o[4]||(o[4]=e("div",{class:"error-icon"},"â",-1)),o[5]||(o[5]=e("span",{class:"error-title"},"ç»å½å¤±è´¥",-1)),e("span",Me,M(q.value),1),e("button",{class:"retry-btn",onClick:oe},"éæ°ç»å½")])):w("",!0),z.value&&!r.value?(f(),m("div",Ee,[...o[6]||(o[6]=[e("div",{class:"success-icon"},"â
",-1),e("span",{class:"success-title"},"ç»å½æå",-1),e("span",{class:"success-message"},"å³å°è·³è½¬å°é¦é¡µ...",-1)])])):w("",!0),g.value?(f(),m("div",Te,[e("div",$e,[e("div",{class:"success-modal-header"},[e("span",{class:"success-modal-close",onClick:ae},"Ã")]),e("div",Le,[e("img",{src:G.value,class:"success-modal-image",onError:te,alt:""},null,40,Ie),o[7]||(o[7]=e("span",{class:"success-modal-title"},"å·²çºæ¨éè¨å¸³æ¶",-1)),e("span",De,M(K.value),1)]),e("div",{class:"success-modal-footer"},[e("button",{class:"success-modal-btn",onClick:le}," ç¹¼çºä½¿ç¨ãå·¥è¯æã ")])])])):w("",!0),L(A,null,{default:R(()=>[L($,{show:i.value,"onUpdate:show":o[2]||(o[2]=c=>i.value=c),position:"center",round:"","lock-scroll":!0,teleport:"body","close-on-click-overlay":!1,style:{width:"90%",maxWidth:"400px"}},{default:R(()=>[e("div",Oe,[e("div",{class:"popup-header"},[o[8]||(o[8]=e("span",{class:"popup-title"},"ç¶å®ææ©è",-1)),e("div",{class:"close-btn",onClick:N},"Ã")]),e("div",qe,[e("div",Pe,[o[10]||(o[10]=e("span",{class:"form-label required"},[F("ææ©è"),e("span",{class:"required-mark"},"*")],-1)),e("div",Ve,[e("div",{class:"country-code-selector",onClick:Y},[e("span",Be,M(V.value),1),o[9]||(o[9]=e("img",{src:we,class:"dropdown-icon"},null,-1))]),W(e("input",{class:"phone-input",type:"number","onUpdate:modelValue":o[0]||(o[0]=c=>d.value=c),placeholder:"è«è¼¸å
¥ææ©è",maxlength:"11"},null,512),[[J,d.value,void 0,{trim:!0}]])]),d.value?w("",!0):(f(),m("span",Ne,"è«è¼¸å
¥å®æ´ææ©è"))]),e("div",Re,[o[11]||(o[11]=e("span",{class:"form-label required"},[F("é©è碼"),e("span",{class:"required-mark"},"*")],-1)),e("div",Fe,[W(e("input",{class:"verify-input",type:"number","onUpdate:modelValue":o[1]||(o[1]=c=>h.value=c),placeholder:"è«è¼¸å
¥é©è碼",maxlength:"6"},null,512),[[J,h.value,void 0,{trim:!0}]]),e("button",{class:"send-code-btn",onClick:X,disabled:x.value||v.value>0},M(v.value>0?`${v.value}ç§å¾é試`:x.value?"ç¼éä¸...":"ç²åé©è碼"),9,We)]),h.value?w("",!0):(f(),m("span",Je,"è«è¼¸å
¥é©è碼"))])]),e("div",Qe,[e("button",{class:"cancel-btn",onClick:N},"åæ¶"),e("button",{class:"confirm-btn",onClick:se,disabled:T.value},"ç¶å®ä¸¦ç»é",8,ze)])])]),_:1},8,["show"])]),_:1}),L(b,{ref_key:"countryCodeDialog",ref:B,onSelect:Z},null,512)])}}}),os=he(Ge,[["__scopeId","data-v-81bf1c0b"]]);export{os as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.