From 34edbefc62aab67e345e06b5e4f45c5838c78538 Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Tue, 15 Jul 2025 14:45:39 +0800 Subject: [PATCH] Allow login via email --- src/main/java/com/openisle/controller/AuthController.java | 3 +++ src/main/java/com/openisle/service/UserService.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/com/openisle/controller/AuthController.java b/src/main/java/com/openisle/controller/AuthController.java index bcdf81b3b..0764c5c59 100644 --- a/src/main/java/com/openisle/controller/AuthController.java +++ b/src/main/java/com/openisle/controller/AuthController.java @@ -69,6 +69,9 @@ public class AuthController { return ResponseEntity.badRequest().body(Map.of("error", "Invalid captcha")); } Optional userOpt = userService.findByUsername(req.getUsernameOrEmail()); + if (userOpt.isEmpty()) { + userOpt = userService.findByEmail(req.getUsernameOrEmail()); + } if (userOpt.isEmpty() || !userService.matchesPassword(userOpt.get(), req.getPassword())) { return ResponseEntity.badRequest().body(Map.of( "error", "Invalid credentials", diff --git a/src/main/java/com/openisle/service/UserService.java b/src/main/java/com/openisle/service/UserService.java index 1ce9046ba..35edf1bf4 100644 --- a/src/main/java/com/openisle/service/UserService.java +++ b/src/main/java/com/openisle/service/UserService.java @@ -102,6 +102,10 @@ public class UserService { return userRepository.findByUsername(username); } + public Optional findByEmail(String email) { + return userRepository.findByEmail(email); + } + public Optional findById(Long id) { return userRepository.findById(id); }