diff --git a/backend/src/main/java/com/petshop/backend/controller/AuthController.java b/backend/src/main/java/com/petshop/backend/controller/AuthController.java index ecbaea8d..1efd0b98 100644 --- a/backend/src/main/java/com/petshop/backend/controller/AuthController.java +++ b/backend/src/main/java/com/petshop/backend/controller/AuthController.java @@ -143,11 +143,16 @@ public class AuthController { @PostMapping("/login") public ResponseEntity login(@Valid @RequestBody LoginRequest request) { try { + String identifier = request.getUsername(); + String resolvedUsername = identifier != null && identifier.contains("@") + ? userRepository.findByEmail(identifier).map(User::getUsername).orElse(identifier) + : identifier; + authenticationManager.authenticate( - new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword()) + new UsernamePasswordAuthenticationToken(resolvedUsername, request.getPassword()) ); - User user = userRepository.findByUsername(request.getUsername()) + User user = userRepository.findByUsername(resolvedUsername) .orElseThrow(() -> new UsernameNotFoundException("User not found")); String token = jwtUtil.generateToken(user);