From 205c56f26e418b4a1074b03fe1946962f2783e98 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Wed, 24 Sep 2025 14:53:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/static/js/AesCbc.js | 21 +++- .../bmw/src/main/resources/static/js/aes.js | 22 ++++- .../bmw/src/main/resources/static/login.html | 98 ++++++++++++++++++- 3 files changed, 137 insertions(+), 4 deletions(-) diff --git a/modules/bmw/src/main/resources/static/js/AesCbc.js b/modules/bmw/src/main/resources/static/js/AesCbc.js index f7247c5..942e5ec 100644 --- a/modules/bmw/src/main/resources/static/js/AesCbc.js +++ b/modules/bmw/src/main/resources/static/js/AesCbc.js @@ -69,4 +69,23 @@ function dateFtt(fmt, date) { //author: meizz if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; -} \ No newline at end of file +} + +/** + * @param {Object} word解密 + */ +function bnsCloudDecrypt(word){ + var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025"); + var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + return CryptoJS.enc.Utf8.stringify(decrypt).toString(); +} +/** + * @param {Object} word加密 + */ +function bnsCloudEncrypt(word){ + var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025"); + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + return encrypted.toString(); +} + diff --git a/modules/bmw/src/main/resources/static/js/aes.js b/modules/bmw/src/main/resources/static/js/aes.js index 620f53d..60ad77f 100644 --- a/modules/bmw/src/main/resources/static/js/aes.js +++ b/modules/bmw/src/main/resources/static/js/aes.js @@ -70,4 +70,24 @@ function dateFtt(fmt, date) { //author: meizz if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; -} \ No newline at end of file +} + +/** + * @param {Object} word解密 + */ +function bnsCloudDecrypt(word){ + var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025"); + var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + return CryptoJS.enc.Utf8.stringify(decrypt).toString(); +} +/** + * @param {Object} word加密 + */ +function bnsCloudEncrypt(word){ + var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025"); + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + return encrypted.toString(); +} + + diff --git a/modules/bmw/src/main/resources/static/login.html b/modules/bmw/src/main/resources/static/login.html index 956998c..6280483 100644 --- a/modules/bmw/src/main/resources/static/login.html +++ b/modules/bmw/src/main/resources/static/login.html @@ -58,8 +58,30 @@ //禁用 F12、鼠标右键 // disabledReviewElement(); }); - - + //自动登录 + window.onload = function() { + //获取浏览器路径 + let hrefUrl = window.location.href; + const url = new URL(hrefUrl); + const urlParam = new URLSearchParams(url.search); + //解析路径参数 + const params = urlParam.get('params'); + if(params){ + //对参数进行解密 + const jiemi =bnsCloudDecrypt(params); + //解密参数继续解析 + const logingParam = new URLSearchParams(jiemi); + //获取账号密码 + const username = logingParam.get('username'); + const password = logingParam.get('password'); + if(username && password){ + //自己系统登录的方法 有验证码的 需要去添加一个无验证码登录的方法 + authLogin(username,password); + } + }else{ + console.log("无自动登录参数"); + } + }; @@ -89,6 +111,78 @@ }); } + function authLogin(username,password){ + $(obj).attr("disabled", true); + var jwtToken = $.trim($('#jwtToken').val()); + var jzpwd = $("#jzpwd").prop("checked"); // 是否记住密码 + if (username == "" || password == "") { + $("#info").html('手机号或者密码不能为空'); + $(obj).attr("disabled", false); + } else { + $.ajax({ + type : 'post', + contentType : "application/json; charset=utf-8", + url : IP_URL + '/auth/login', + data : JSON.stringify({ + // "username" : username, + // "password" : password, + "username" : encryptCBC(username), + "password" : encryptCBC(password), + "jwtToken" : jwtToken + }), + success : function(data) { + if(data.code == '200'){ + console.log("[[[[[:",data) + let roleLevel = data.data.loginUser.sysUser.roleLevel; + // if(roleLevel != '5'){ + localStorage.setItem("smz-token", data.data.access_token); + //保存用户名密码 + localStorage.setItem("userName", username); + localStorage.setItem("password", password); + //保存登录人id + localStorage.setItem("userId", data.data.loginUser.userid); + //保存登录人身份证 + localStorage.setItem("userIdNumber", data.data.loginUser.sysUser.idNumber); + //保存登录人手机号 + localStorage.setItem("phonenumber", data.data.loginUser.sysUser.phonenumber); + //角色等级 + localStorage.setItem("roleLevel", roleLevel); + //是否记录密码 + localStorage.setItem("jzpwd", jzpwd); + //验证密码强度 + var flag = checkPwd(password); + //密码强度过低 + if(flag){ + //密码强度符合规则 + location.href = ctxPath + '/index.html'; + }else{ + var msg = "您的密码复杂度太低!密码中必须包含【大小字母】、【数字】、【特殊字符】,请您尽快去修改密码。"; + layer.alert(msg, { icon: 0 }, function () { + location.href = ctxPath + '/index.html'; + }); + } + + // }else{ + // $("#info").html("施工人员级权限无法登录"); + // $(obj).attr("disabled", false); + // } + }else{ + $("#info").html(data.msg); + $(obj).attr("disabled", false); + } + }, + error : function(xhr, textStatus, errorThrown) { + var msg = xhr.responseText; + var response = JSON.parse(msg); + $("#info").html(response.message); + $(obj).attr("disabled", false); + } + }); + + } + + } + //回车登录, function enterBtn(){ fastLogin();