Selaa lähdekoodia

免密登录实现

ming 1 vuosi sitten
vanhempi
commit
8561bf9977
5 muutettua tiedostoa jossa 76 lisäystä ja 15 poistoa
  1. 1 1
      package.json
  2. 1 1
      src/manifest.json
  3. 21 12
      src/pages/index.vue
  4. 15 1
      src/pages/login.vue
  5. 38 0
      src/utils/jsencrypt.js

+ 1 - 1
package.json

@@ -76,4 +76,4 @@
         "sass": "1.57.1",
         "vite": "5.2.8"
     }
-}
+}

+ 1 - 1
src/manifest.json

@@ -185,7 +185,7 @@
     },
     "quickapp" : {},
     "mp-weixin" : {
-        "appid" : "",
+        "appid" : "wxf5ad8734295d43f8",
         "setting" : {
             "urlCheck" : false,
             "checkSiteMap" : false

+ 21 - 12
src/pages/index.vue

@@ -1,25 +1,34 @@
 <template>
-  <!-- <view style="color:red">登录了</view> -->
-        <web-view src="https://manager.usky.cn/mobile/#/">跳转</web-view>
+        <web-view :src="url"></web-view>
 </template>
 
 <script setup>
 import { onLoad, onShow, onHide, onLaunch, onReady } from "@dcloudio/uni-app";
+import { encrypt ,decrypt} from "@/utils/jsencrypt";
 
+uni.getStorageSync("data2" )
 
-onShow(() => {
+// 原始数据
+// const data=JSON.parse(localStorage.getItem("data"))
+const data=JSON.parse(uni.getStorageSync("data" ))
+console.log(data)
+
+// 加密数据
+const encryptedData = encrypt(JSON.stringify(data));
+
+// 构造URL
+const url = `https://manager.usky.cn/mobile/#/pages/login?xcx=${encodeURIComponent(encryptedData)}`;
 
-  
 
-// 正确示范
-uni.setNavigationBarColor({
-	frontColor:"#ffffff",
-	backgroundColor:"#149EFF",
-});
 
-uni.setNavigationBarTitle({
-  title: ''
-});
+ 
+onShow(() => {
+
+  // 设置导航栏颜色和背景色
+  uni.setNavigationBarColor({
+    frontColor:"#ffffff",
+    backgroundColor:"#149EFF",
+  });
 
 })
 

+ 15 - 1
src/pages/login.vue

@@ -40,7 +40,7 @@
       <view class="middle-switch">
         <text class="switch-loginMethod" @click="switchMode(1)">{{ switchText === "验证码登录" ? "账号密码登录" : "验证码登录" }}</text>
         <view style="margin: auto"></view>
-        <text class="switch-register" @click="switchMode(2)">注册账号</text>
+        <text class="switch-register" @click="switchMode(2)">注册账号1</text>
       </view>
       <!--#endif-->
 
@@ -261,6 +261,20 @@ function login(data) {
     proxy.$modal.closeLoading();
     useStore.GetInfo().then((res) => {
       proxy.$tab.reLaunch("/pages/index");
+
+      var loginData={
+        username: state.switchText == "账号密码登录" ? state.username : undefined,
+        password: state.switchText == "账号密码登录" ? state.password : undefined,
+        phone: state.switchText == "验证码登录" ? state.phone : undefined,
+        verify: state.switchText == "验证码登录" ? state.verify : undefined,
+        tenantId: useStore.tenantId,
+        cids: proxy.$settingStore.pushClientId || undefined,
+        type: proxy.$common.isWechatMp() ? "wx" : "app",
+        openId: proxy.$common.isWechatMp() ? localStorage.getItem("wxOpenId") : undefined,
+      
+          }
+          uni.setStorageSync("data", JSON.stringify(loginData));
+      // localStorage.setItem("data", JSON.stringify(loginData)),
       proxy.$settingStore.initThemeColor(storageSystem.get("themeColor")); //初始化默认主题
     });
   });

+ 38 - 0
src/utils/jsencrypt.js

@@ -0,0 +1,38 @@
+import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
+
+// 密钥对生成 http://web.chacuo.net/netrsakeypair
+
+const publicKey = `MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxPWP0HTBE9vEeM34Qx03U8oVm
+C6xIqWPRuI5t8J0zEDQudAgXKPjy8E0Q3cX800UNBTx2gUfRRNrONqALKDnJ1SE6
+qCUDeXOez8sa95GQ9d4BX7pSjZLrPfnCBTBtb5LGkY5zmlmtpG2AV9eJr+kQqhs/
+r0c4njwaDjVG4kF3ZQIDAQAB`
+
+const privateKey = `MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALE9Y/QdMET28R4z
+fhDHTdTyhWYLrEipY9G4jm3wnTMQNC50CBco+PLwTRDdxfzTRQ0FPHaBR9FE2s42
+oAsoOcnVITqoJQN5c57Pyxr3kZD13gFfulKNkus9+cIFMG1vksaRjnOaWa2kbYBX
+14mv6RCqGz+vRziePBoONUbiQXdlAgMBAAECgYBjSDdAXEVYrFdeiouYjHwdyAhP
+pERKo5BFvzMRhJIaM353cwnBJ3NkapVQ2Fn6iMIKTB+VZk+7eu1yTAkUluDfLowd
+REZS4ipOBY5UuNnjbXmSOoUQw6vRnox0X4x6S1vd4FBHgpVe1VkiE7Nz5U7Clyd5
+yw2P1lHwMyB/guAH4QJBAN3dGkMASj0jm23maHOfehp/zlACB8HpMKuV4z/bEg45
+nC9Hw5NloUHrXdzEXP1+S46MCH2THflxDVYtnZTRLO0CQQDMgp3Jrn7kkKtNceZF
+R08hLbVmfNlatgONgFJ5JnR+GTQ6o2gwM6SLyoBkfAIiEDpr6c6nBXTU09GOYxBk
++h1ZAkB32pXxVBrG5JF20V3j+GcyIZEGz9H5A0xzpUlambIrVRv2vsH8wo5W2hue
+w8Woe629mBCOJgevVU9rGsFiP44RAkEApbTYAQjAjJakFpZJjKzg8vNEXoye2R9N
+9aOaL8v27A2kAjdRPm050IL+UW0hlVQs4i+KYE7NgX03+PVP3WHD0QJBANLo4PRw
+7Y+dLPAzuazsD3/5SYaSh+KSD/+tVbc6CFvLyfFUKp/a4PzzvGaLo/Ky/ffOY5k0
+hmavbHCKcg+r+hg=`
+
+
+// 加密
+export function encrypt(txt) {
+    const encryptor = new JSEncrypt()
+    encryptor.setPublicKey(publicKey) // 设置公钥
+    return encryptor.encrypt(txt) // 对数据进行加密
+}
+
+// 解密
+export function decrypt(txt) {
+    const encryptor = new JSEncrypt()
+    encryptor.setPrivateKey(privateKey) // 设置私钥
+    return encryptor.decrypt(txt) // 对数据进行解密
+}