springboot学生宿舍管理系统登录功能多角色登录controller层验证用户名与密码代码实现步骤
时间: 2023-09-03 14:07:25 浏览: 96
java基于jsp+servlet+mysql开发实现的学生选课管理系统源码可以多角色登录代码绝对可以正常运行亲测可用
5星 · 资源好评率100%
好的,以下是一个简单的示例代码实现步骤:
1. 创建一个 `LoginController` 类,并使用 `@RestController` 注解标识该类为控制器。
2. 在 `LoginController` 类中注入一个 `UserService`,用于查询用户信息。
```java
@Autowired
private UserService userService;
```
3. 创建一个 `/check` 接口,并使用 `@PostMapping` 注解标识该接口为 POST 请求。
```java
@PostMapping("/check")
```
4. 在 `/check` 接口中,使用 `@RequestBody` 注解将前端传递的 JSON 格式的 User 对象转换为 Java 对象,并根据用户名查询数据库中是否存在该用户。
```java
@PostMapping("/check")
public Result checkLogin(@RequestBody User user) {
// 根据用户名查询用户
User loginUser = userService.findByUsername(user.getUsername());
if (loginUser == null) {
return Result.error("用户名不存在");
}
// ...
}
```
5. 如果用户名不存在,则返回错误信息。
```java
if (loginUser == null) {
return Result.error("用户名不存在");
}
```
6. 如果用户名存在,则验证密码是否正确。
```java
if (!loginUser.getPassword().equals(user.getPassword())) {
return Result.error("密码错误");
}
```
7. 如果密码正确,则根据用户角色返回不同的成功信息和角色标识。
```java
if (loginUser.getRole().equals("admin")) {
return Result.success("管理员登录成功", "admin");
} else if (loginUser.getRole().equals("student")) {
return Result.success("学生登录成功", "student");
} else {
return Result.error("无效的角色");
}
```
8. 最后,将成功信息和角色标识封装到 `Result` 对象中返回给前端。
```java
if (loginUser.getRole().equals("admin")) {
return Result.success("管理员登录成功", "admin");
} else if (loginUser.getRole().equals("student")) {
return Result.success("学生登录成功", "student");
} else {
return Result.error("无效的角色");
}
```
阅读全文