From 3e48e3144b8800e10167287d8c0f96bbbdc763ca Mon Sep 17 00:00:00 2001 From: ivyxjc Date: Tue, 29 Apr 2025 17:34:37 +0800 Subject: [PATCH 1/2] feat(): send verification code during registration --- .../helper/login/UserServiceImpl.java | 9 +++++++-- .../DummyVerificationService.java | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/clevercastle/helper/login/verification/DummyVerificationService.java diff --git a/src/main/java/org/clevercastle/helper/login/UserServiceImpl.java b/src/main/java/org/clevercastle/helper/login/UserServiceImpl.java index 92af86a..61299c3 100644 --- a/src/main/java/org/clevercastle/helper/login/UserServiceImpl.java +++ b/src/main/java/org/clevercastle/helper/login/UserServiceImpl.java @@ -24,6 +24,7 @@ import org.clevercastle.helper.login.util.HashUtil; import org.clevercastle.helper.login.util.IdUtil; import org.clevercastle.helper.login.util.TimeUtils; +import org.clevercastle.helper.login.verification.VerificationService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,13 +40,16 @@ public class UserServiceImpl implements UserService { private final Config config; private final UserRepository userRepository; private final TokenService tokenService; + private final VerificationService verificationService; public UserServiceImpl(Config config, UserRepository userRepository, - TokenService tokenService) { + TokenService tokenService, + VerificationService verificationService) { this.config = config; this.userRepository = userRepository; this.tokenService = tokenService; + this.verificationService = verificationService; } @Override @@ -82,6 +86,7 @@ public User register(UserRegisterRequest userRegisterRequest) throws CastleExcep userLoginItem.setCreatedAt(now); userLoginItem.setUpdatedAt(now); this.userRepository.save(user, userLoginItem); + this.verificationService.sendVerificationCode(userLoginItem.getLoginIdentifier(), userLoginItem.getVerificationCode()); return user; } @@ -99,7 +104,7 @@ public void verify(String loginIdentifier, String verificationCode) throws Castl if (!StringUtils.equals(verificationCode, userLoginItem.getVerificationCode())) { throw new CastleException(); } - this.userRepository.confirmLoginItem(loginIdentifier); + this.verificationService.verify(loginIdentifier, verificationCode); } @Override diff --git a/src/main/java/org/clevercastle/helper/login/verification/DummyVerificationService.java b/src/main/java/org/clevercastle/helper/login/verification/DummyVerificationService.java new file mode 100644 index 0000000..a5456f2 --- /dev/null +++ b/src/main/java/org/clevercastle/helper/login/verification/DummyVerificationService.java @@ -0,0 +1,20 @@ +package org.clevercastle.helper.login.verification; + +import org.clevercastle.helper.login.CastleException; +import org.clevercastle.helper.login.repository.rdsjpa.UserLoginItemRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DummyVerificationService extends AbstractVerificationService { + private final Logger logger = LoggerFactory.getLogger(DummyVerificationService.class); + + public DummyVerificationService(UserLoginItemRepository userLoginItemRepository) { + super(userLoginItemRepository); + } + + @Override + public void sendVerificationCode(String loginIdentifier, String verificationCode) throws CastleException { + logger.info("verification code is: {}", verificationCode); + + } +} From 252b36c859c73274a9b84c06205c332792e41f80 Mon Sep 17 00:00:00 2001 From: ivyxjc Date: Tue, 29 Apr 2025 17:34:54 +0800 Subject: [PATCH 2/2] feat(example): update example --- .../login/examples/springboot/springbootexample/Beans.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/spring-boot-example/src/main/java/org/clevercastle/helper/login/examples/springboot/springbootexample/Beans.java b/examples/spring-boot-example/src/main/java/org/clevercastle/helper/login/examples/springboot/springbootexample/Beans.java index d6763a2..12bf86d 100644 --- a/examples/spring-boot-example/src/main/java/org/clevercastle/helper/login/examples/springboot/springbootexample/Beans.java +++ b/examples/spring-boot-example/src/main/java/org/clevercastle/helper/login/examples/springboot/springbootexample/Beans.java @@ -10,6 +10,7 @@ import org.clevercastle.helper.login.repository.rdsjpa.UserRepositoryImpl; import org.clevercastle.helper.login.token.TokenService; import org.clevercastle.helper.login.token.jwt.JwtTokenService; +import org.clevercastle.helper.login.verification.DummyVerificationService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; @@ -53,8 +54,8 @@ public TokenService tokenService() throws NoSuchAlgorithmException, InvalidKeySp } @Bean - public UserService userService(UserRepository userRepository, TokenService tokenService) { - return new UserServiceImpl(Config.builder().build(), userRepository, tokenService); + public UserService userService(UserRepository userRepository, UserLoginItemRepository userLoginItemRepository, TokenService tokenService) { + return new UserServiceImpl(Config.builder().build(), userRepository, tokenService, new DummyVerificationService(userLoginItemRepository)); }