Vue+MD5改密

58 篇文章 2 订阅
本文介绍了前端开发中密码修改的四个关键校验步骤,并分享了解决ElementUI Dialog组件遮罩层选中问题的方法。通过设置Dialog的z-index,成功解决了首页地图层级过高导致的交互问题。同时,提供了后台接口代码示例,展示如何验证并更新用户密码。
摘要由CSDN通过智能技术生成

 1.必填校验

 2.新密码确认校验

3.原密码校验

 

4.密码长度 安全等级校验

 

 

以上4条都校验通过才允许修改。

需要注意的是在点击修改密码弹出框时遇到一点小问题,博主用的是elementui的dialog组件,在打开弹出框时遮罩层无法选中操作。(可能是首页地图z-index的层级比较高的原因),所以通过设置dialog的z-index层级就可以解决这个问题了。

代码如下:

this.$nextTick(()=>{//设置dom style z-index 小于998
  this.timer=setTimeout(() => {//利用宏任务最后执行,保证dom已经生成 
     document.querySelector(".v-modal").style="z-index:90 !important";
  }, 200);
});

 

接口很简单:

 [HttpPost, HttpGet]
        public IActionResult ChangePwd(string usr_id, string newPassword, string oldPassword)
        {
            bool result = false;
            string message = "";
            string type = "success";//success,warning,,info,error
            SysUsr usr = new SysUsr();
            usr = XCode.Entity<SysUsr>.Find("UsrId", usr_id);
            if (NewLife.SecurityHelper.MD5(oldPassword) != usr.UsrPwd) {
                return Ok(new { code = 208, result=false, type= "warning", message="原密码错误!" });
            }
            usr.UsrPwd = NewLife.SecurityHelper.MD5(newPassword);
            result = XCode.Entity<SysUsr>.Update(usr) > 0 ? true : false;
            type = result ? "success" : "error";
            message = result ? "操作成功" : "操作失败";
            return Ok(new { code = 200, result, type, message });
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用VueElementUI、MyBatis和SpringBoot实现MD5加密的完整代码: 前端代码(使用VueElementUI): ```html <template> <el-form ref="form" :model="loginForm" label-width="80px"> <el-form-item label="用户名" prop="username"> <el-input v-model="loginForm.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="loginForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="login">登录</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { loginForm: { username: '', password: '' } } }, methods: { login() { this.$axios.post('/login', { username: this.loginForm.username, password: this.md5(this.loginForm.password) }).then(response => { console.log(response.data) }).catch(error => { console.log(error) }) }, md5(str) { // 请在这里添加MD5加密算法的实现代码 } } } </script> ``` 后端代码(使用MyBatis和SpringBoot): ```java @RestController public class LoginController { @Autowired private UserService userService; @PostMapping("/login") public Response login(@RequestBody LoginForm loginForm) { User user = userService.getUserByUsername(loginForm.getUsername()); if (user == null) { return Response.error("用户不存在"); } if (!user.getPassword().equals(loginForm.getPassword())) { return Response.error("密码错误"); } return Response.success("登录成功"); } } @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserByUsername(String username) { return userMapper.selectByUsername(username); } } @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE username = #{username}") User selectByUsername(@Param("username") String username); } public interface UserService { User getUserByUsername(String username); } public class User { private Long id; private String username; private String password; // 省略getter和setter方法 } ``` 请注意,以上代码只是示例代码,实际项目中需要根据具体需求进行修改和优化。另外,MD5加密算法的实现代码需要根据具体语言和库进行选择和编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值