jeecgboot前后端加密傳輸(登錄)
參考地址:
1.后台登錄接口得參數獲取和解密
文件地址:jeecg-boot-module-system\src\main\java\org\jeecg\modules\system\controller\LoginController.java
-
導入aes加密處理類:AesEncryptUtil;
import org.jeecg.common.util.encryption.AesEncryptUtil;
-
用戶名和代碼得解密獲取:部分代碼如下
@ApiOperation("登錄接口") @RequestMapping(value = "/login", method = RequestMethod.POST) public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel){ public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws Exception { Result<JSONObject> result = new Result<JSONObject>(); String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword(); /*String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword();*/ //后台得解密 String username = AesEncryptUtil.desEncrypt(sysLoginModel.getUsername(),EncryptedString.key,EncryptedString.iv).trim(); String password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword(),EncryptedString.key,EncryptedString.iv).trim();
2.前端加密傳輸
文件地址:\src\views\user\Login.vue
-
data 添加變量,存儲加密用到的key和iv:
Encrypteds:{ key:"", iv:"", },
-
method 添加獲取key和iv得方法:
//key iv 得初始化方法 getEncrypteds(){ var me = this; getAction(`/sys/getEncryptedString`).then((res)=>{ me.Encrypteds.key = res.result.key me.Encrypteds.iv = res.result.iv }) },
-
再在登錄方法之前調用getEncrypteds()完成初始化:就一行代碼,放在loginByUsername()之前就好
//登錄 handleSubmit () { let that = this let loginParams = {}; that.loginBtn = true; // 使用賬戶密碼登錄 if (that.customActiveKey === 'tab1') { this.getEncrypteds();//調用初始化方法 this.loginByUsername(); } else { this.loginByPhone() } },
-
username 和password得加密傳輸
username: encryption(this.model.username,this.Encrypteds.key,this.Encrypteds.iv), password: encryption(this.model.password,this.Encrypteds.key,this.Encrypteds.iv),