基于Java+SpringBoot+Mysql+Vue实现的4S店保养与维修系统部分功能设计与实现五
由于上述系统的完整性和复杂性,我们将仅提供核心的登录功能实现作为示例。
// UserController.java
@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginRequest loginRequest) {
try {
UserDetails userDetails = userService.loadUserByUsername(loginRequest.getUsername());
if (passwordEncoder.matches(loginRequest.getPassword(), userDetails.getPassword())) {
Authentication authentication = authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(loginRequest.getUsername(), loginRequest.getPassword()));
SecurityContextHolder.getContext().setAuthentication(authentication);
String token = jwtTokenUtil.generateToken(userDetails);
return ResponseEntity.ok(new JwtResponse(token, userDetails.getUsername()));
} else {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new MessageResponse("登录失败: 密码错误"));
}
} catch (UsernameNotFoundException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new MessageResponse("登录失败: 用户不存在"));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new MessageResponse("登录失败: 服务器错误"));
}
}
}
在这个简化的代码示例中,我们定义了一个UserController,其中包含了登录功能的实现。我们首先尝试根据用户名加载用户详情,然后检查密码是否匹配。如果一切顺利,我们生成一个JWT token并返回给客户端。如果发生错误,我们根据错误类型返回适当的响应。这个简化的例子展示了如何在Spring Boot应用中实现用户登录功能。
评论已关闭