@@ -78,6 +69,9 @@ export default {
await loadCurrentUser()
toast.success('登录成功')
this.$router.push('/')
+ } else if (data.reason_code === 'NOT_VERIFIED') {
+ toast.info('当前邮箱未验证,请先重新填写注册页面并验证')
+ this.$router.push('/signup')
} else {
toast.error(data.error || '登录失败')
}
diff --git a/src/main/java/com/openisle/controller/AuthController.java b/src/main/java/com/openisle/controller/AuthController.java
index db6c309bc..bcdf81b3b 100644
--- a/src/main/java/com/openisle/controller/AuthController.java
+++ b/src/main/java/com/openisle/controller/AuthController.java
@@ -68,7 +68,7 @@ public class AuthController {
if (captchaEnabled && loginCaptchaEnabled && !captchaService.verify(req.getCaptcha())) {
return ResponseEntity.badRequest().body(Map.of("error", "Invalid captcha"));
}
- Optional userOpt = userService.findByUsername(req.getUsername());
+ Optional userOpt = userService.findByUsername(req.getUsernameOrEmail());
if (userOpt.isEmpty() || !userService.matchesPassword(userOpt.get(), req.getPassword())) {
return ResponseEntity.badRequest().body(Map.of(
"error", "Invalid credentials",
@@ -133,7 +133,7 @@ public class AuthController {
@Data
private static class LoginRequest {
- private String username;
+ private String usernameOrEmail;
private String password;
private String captcha;
}