springboot+mybatisplus+vue登录加密代码
时间: 2023-03-20 20:02:36 浏览: 88
您好,以下是一个使用SpringBoot、Mybatis Plus和Vue实现的登录加密代码示例:
后端Java代码:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public String login(@RequestBody User user) {
User loginUser = userService.login(user);
if (loginUser != null) {
String token = JwtUtil.createToken(loginUser.getId(), loginUser.getUsername());
return token;
} else {
return "登录失败";
}
}
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public User login(User user) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", user.getUsername());
queryWrapper.eq("password", DigestUtils.md5DigestAsHex(user.getPassword().getBytes()));
User loginUser = this.getOne(queryWrapper);
return loginUser;
}
}
public interface UserService extends IService<User> {
User login(User user);
}
```
前端Vue代码:
```vue
<template>
<div>
<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>
</div>
</template>
<script>
import { login } from "@/api/user";
import JwtUtil from "@/utils/jwtUtil";
export default {
name: "Login",
data() {
return {
loginForm: {
username: "",
password: "",
},
};
},
methods: {
login() {
login(this.loginForm)
.then((response) => {
const token = response.data;
JwtUtil.setToken(token);
this.$router.push("/home");
})
.catch((error) => {
console.log(error);
});
},
},
};
</script>
```
其中,`UserService`定义了登录方法`login`,在实现类`UserServiceImpl`中调用`Mybatis Plus`提供的`QueryWrapper`构造查询条件,查询数据库中是否存在匹配的用户信息,如果存在则生成`JWT`令牌返回给前端。
前端Vue代码中,调用`API`提供的`login`方法发送登录请求,并在成功响应后将返回的`JWT`令牌存储在本地,跳转到首页。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)