Files
wecom_it_smart_desk/frontend-agent/dist.bak/assets/MfaBind-CCREh_DU.js
T

2 lines
6.3 KiB
JavaScript
Raw Normal View History

import{d as X,o as D,E as A,b as o,c as u,g as t,w as a,q as H,j as J,r as i,i as r,u as y,l as O,f as s,F as K,h as g,V as L,W as Y,X as $,n as Z,e as P,m as ee}from"./index-B1u3nieA.js";import{a as V}from"./index-ChNUjLLo.js";async function te(){return await V.get("/mfa/status")}async function se(){return await V.post("/mfa/bind/start")}async function ae(C){const x={otp_code:C};return await V.post("/mfa/bind/confirm",x)}const le={class:"mfa-bind-page"},ne={class:"card-header"},oe={key:0,class:"state-loading"},ie={key:1,class:"state-success"},re={key:0,class:"step-intro"},ue={key:1,class:"step-qrcode"},de={class:"step-tip"},ce={class:"qrcode-container"},pe=["src"],ve={key:1,class:"qrcode-placeholder"},fe={class:"manual-secret"},me={class:"qrcode-actions"},_e={key:2,class:"step-verify"},ye={class:"step-tip"},ge={class:"verify-actions"},be=X({__name:"MfaBind",setup(C){const x=H(),B=J(),q=i(!0),F=i(!1),d=i(0),b=i(!1),f=i(!1),M=i(""),w=i(""),m=i(""),c=i(""),T=i([]);D(async()=>{try{if((await te()).bound){F.value=!0,setTimeout(()=>N(),800);return}}catch(l){E(l,"检查绑定状态失败")}finally{q.value=!1}});async function h(){if(!b.value){b.value=!0,c.value="";try{const l=await se();M.value=l.qr_code_base64,w.value=l.secret,d.value=1}catch(l){E(l,"生成二维码失败")}finally{b.value=!1}}}async function R(){await h()}async function U(){if(w.value)try{await navigator.clipboard.writeText(w.value),A.success("密钥已复制到剪贴板")}catch{A.error("复制失败,请手动选中复制")}}async function j(){var l,e;if(!(m.value.length!==6||f.value)){f.value=!0,c.value="";try{if((await ae(m.value)).success){A.success("MFA 绑定成功!"),d.value=3,setTimeout(()=>N(),800);return}c.value="绑定失败,请重试"}catch(n){const p=((e=(l=n==null?void 0:n.response)==null?void 0:l.data)==null?void 0:e.message)||(n==null?void 0:n.message)||"验证失败";p.includes("OTP")||p.includes("验证码")?(c.value="OTP 验证码错误,请重新输入",m.value=""):c.value=p}finally{f.value=!1}}}function E(l,e){var p,v;const n=((v=(p=l==null?void 0:l.response)==null?void 0:p.data)==null?void 0:v.message)||(l==null?void 0:l.message)||e;A.error(n),c.value=n}function N(){const l=x.query.redirect||"/workspace";B.replace(l)}return(l,e)=>{const n=r("el-icon"),p=r("el-result"),v=r("el-step"),G=r("el-steps"),S=r("el-alert"),_=r("el-button"),z=r("el-input"),I=r("el-collapse-item"),Q=r("el-collapse"),W=r("el-card");return o(),u("div",le,[t(W,{class:"mfa-card",shadow:"hover"},{header:a(()=>[s("div",ne,[t(n,{class:"header-icon"},{default:a(()=>[t(y($))]),_:1}),e[4]||(e[4]=s("span",{class:"header-title"},"绑定动态令牌(MFA)",-1))])]),default:a(()=>[q.value?(o(),u("div",oe,[t(n,{class:"is-loading"},{default:a(()=>[t(y(O))]),_:1}),e[5]||(e[5]=s("span",null,"正在检查绑定状态...",-1))])):F.value?(o(),u("div",ie,[t(p,{icon:"success",title:"已绑定 MFA","sub-title":"正在跳转到工作台..."})])):(o(),u(K,{key:2},[t(G,{active:d.value,"finish-status":"success","align-center":"",class:"steps"},{default:a(()=>[t(v,{title:"开始绑定"}),t(v,{title:"扫码"}),t(v,{title:"验证"}),t(v,{title:"完成"})]),_:1},8,["active"]),d.value===0?(o(),u("div",re,[t(S,{type:"info",closable:!1,class:"intro-alert"},{title:a(()=>[...e[6]||(e[6]=[s("span",null,"什么是 MFA 动态令牌?",-1)])]),default:a(()=>[e[7]||(e[7]=s("div",{class:"intro-content"}," MFA(多因素认证)通过动态令牌为您的账号增加一层保护。 绑定后,每次登录或执行敏感操作时,需要输入手机端 Authenticator 生成的 6 位动态码。 ",-1))]),_:1}),e[9]||(e[9]=s("div",{class:"intro-steps"},[s("div",{class:"intro-step"},[s("div",{class:"intro-num"},"1"),s("div",{class:"intro-text"},"下载 Authenticator(Google / 微软 / Authy 均可)")]),s("div",{class:"intro-step"},[s("div",{class:"intro-num"},"2"),s("div",{class:"intro-text"},'点击下方"开始绑定",扫描二维码')]),s("div",{class:"intro-step"},[s("div",{class:"intro-num"},"3"),s("div",{class:"intro-text"},"输入 Authenticator 显示的 6 位动态码完成绑定")])],-1)),t(_,{type:"primary",si