From a70e327a8efaf38d74911ea568419a087fbd235a Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: 星期四, 15 四月 2021 11:42:05 +0800 Subject: [PATCH] 修改用户密码前先验证旧密码,增加安全性 --- web_src/src/components/dialog/changePassword.vue | 27 +++++++++++++++++++++------ 1 files changed, 21 insertions(+), 6 deletions(-) diff --git a/web_src/src/components/dialog/changePassword.vue b/web_src/src/components/dialog/changePassword.vue index 5842df0..39aba8d 100644 --- a/web_src/src/components/dialog/changePassword.vue +++ b/web_src/src/components/dialog/changePassword.vue @@ -11,6 +11,9 @@ > <div id="shared" style="margin-right: 20px;"> <el-form ref="passwordForm" :rules="rules" status-icon label-width="80px"> + <el-form-item label="鏃у瘑鐮�" prop="oldPassword" > + <el-input v-model="oldPassword" autocomplete="off"></el-input> + </el-form-item> <el-form-item label="鏂板瘑鐮�" prop="newPassword" > <el-input v-model="newPassword" autocomplete="off"></el-input> </el-form-item> @@ -31,15 +34,23 @@ </template> <script> +import crypto from 'crypto' export default { name: "changePassword", props: {}, computed: {}, created() {}, data() { - let validatePass = (rule, value, callback) => { + let validatePass0 = (rule, value, callback) => { if (value === '') { - callback(new Error('璇疯緭鍏ュ瘑鐮�')); + callback(new Error('璇疯緭鍏ユ棫瀵嗙爜')); + } else { + callback(); + } + }; + let validatePass1 = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇疯緭鍏ユ柊瀵嗙爜')); } else { if (this.confirmPassword !== '') { this.$refs.passwordForm.validateField('confirmPassword'); @@ -57,12 +68,14 @@ } }; return { + oldPassword: null, newPassword: null, confirmPassword: null, showDialog: false, isLoging: false, rules: { - newPassword: [{ required: true, validator: validatePass, trigger: "blur" }], + oldPassword: [{ required: true, validator: validatePass0, trigger: "blur" }], + newPassword: [{ required: true, validator: validatePass1, trigger: "blur" }], confirmPassword: [{ required: true, validator: validatePass2, trigger: "blur" }], }, }; @@ -76,13 +89,14 @@ method: 'post', url:"/api/user/changePassword", params: { + oldpassword: crypto.createHash('md5').update(this.oldPassword, "utf8").digest('hex'), password: this.newPassword } }).then((res)=> { if (res.data === "success"){ this.$message({ showClose: true, - message: '淇敼鎴愬姛锛岃閲嶆柊鐧婚檰', + message: '淇敼鎴愬姛锛岃閲嶆柊鐧诲綍', type: 'success' }); this.showDialog = false; @@ -99,8 +113,9 @@ }, close: function () { this.showDialog = false; - this.newPassword= null; - this.confirmPassword=null; + this.oldPassword = null; + this.newPassword = null; + this.confirmPassword = null; }, }, }; -- Gitblit v1.8.0