Просмотр исходного кода

fix: 新增账号绑定校验逻辑,防止重复绑定与姓名不匹配

1. 新增本地缓存username读取与校验,验证当前登录姓名与绑定用户是否一致
2. 新增checkEduid接口调用,校验教育ID是否已绑定其他账号
3. 校验不通过时弹出提示并跳转登录页,通过则正常清除绑定缓存并保存信息
4. 登录成功时将用户姓名存入本地缓存
lsc 3 дней назад
Родитель
Сommit
e1524896a6
1 измененных файлов с 27 добавлено и 4 удалено
  1. 27 4
      src/App.vue

+ 27 - 4
src/App.vue

@@ -50,11 +50,27 @@ onMounted(() => {
             name.value = r.data.data.userName
             name.value = r.data.data.userName
             let isBjt = localStorage.getItem('isBjt')
             let isBjt = localStorage.getItem('isBjt')
             let userid = localStorage.getItem('userid')
             let userid = localStorage.getItem('userid')
+            let username = localStorage.getItem('username')
             if(isBjt == 1){
             if(isBjt == 1){
-              localStorage.removeItem('isBjt')
-              localStorage.removeItem('userid')
-              setEduid(userid, r.data.data.eduId)
-              setStateUserinfo(userid)
+              if(r.data.data.userName != username){
+                top.U.alert("与绑定用户的姓名不符,请重新登录!");
+                linkLogin()
+                return
+              }
+              checkEduid(r.data.data.eduId).then(res3 => {
+                console.log(data2);
+                if(res3 && res3.value && res3.value.length && res3.value[0].length){
+                  top.U.alert("该用户已绑定其他账号,请重新登录!");
+                  linkLogin()
+                  return
+                }else {
+                  localStorage.removeItem('isBjt')
+                  localStorage.removeItem('userid')
+                  localStorage.removeItem('username')
+                  setEduid(userid, r.data.data.eduId)
+                  setStateUserinfo(userid)
+                }
+              })
             }
             }
             else{
             else{
               userInfo(r.data.data)
               userInfo(r.data.data)
@@ -198,6 +214,7 @@ const userInfo2 = (data) => {
         setStateUserinfo(d.data[0][0].userid)
         setStateUserinfo(d.data[0][0].userid)
       }else {
       }else {
         localStorage.setItem('userid', userinfo.userid)
         localStorage.setItem('userid', userinfo.userid)
+        localStorage.setItem('username', userinfo.name)
         localStorage.setItem('isBjt', 1)
         localStorage.setItem('isBjt', 1)
         linkLogin()
         linkLogin()
       }
       }
@@ -324,6 +341,12 @@ const setEduid = async (userid, eduId) => {
   console.log(res);
   console.log(res);
 }
 }
 
 
+const checkEduid = async (eduId) => {
+  const res = await axios.get(`https://pbl.cocorobo.cn/api/pbl/checkEduid?eduid=${eduId}`);
+  console.log(res);
+  return res
+}
+
 
 
 
 
 const getUrlParam = (urlStr, urlKey) => {
 const getUrlParam = (urlStr, urlKey) => {