Spring/[P] AI 기반 사용자 맞춤형 메뉴와 맛집 추천

[Springboot] 비밀번호 재설정 개발하기

alsruds 2024. 8. 26. 16:02

🗂️ src/main/java

  L  📁 apiPayload

  L  📁 config

  L  📂 controller

        L UserController

  L  📂 domain

        L 📁 common

        L 📁 enums

        L User

  L  📂 dto

        L 📂 request

              L ChangePasswordDto

        L 📁 response

  L  📁 jwt

  L  📂 repository

        L UserRepository

  L  📂 service

        L UserService

        L UserServiceImpl

 

 

새로운 비밀번호로 변경해보자 ❕

 

UserController : JWT 토큰 값으로 해당 사용자 데이터 접근

@RestController
@RequiredArgsConstructor
@RequestMapping("/user")
public class UserController {

    private final UserService userService;

    @PostMapping("/change-pw")
    public ApiResponse<SuccessStatus> changePassword(@RequestHeader("Authorization") String token,
                                                     @Valid @RequestBody ChangePasswordDto dto) {
        String userEmail = JwtUtil.getEmail(token.substring(7));
        return ApiResponse.onSuccess(userService.changePassword(userEmail, dto));
    }
}

 

UserRepository : 사용자 검증

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

 

UserServiceImpl : 전달받은 비밀번호로 변경

@Service
@Transactional
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {

    private final UserRepository userRepository;

    public SuccessStatus changePassword(String email, ChangePasswordDto dto) {
        Optional<User> user = userRepository.findByEmail(email);
        if (user.isPresent()) {
            user.get().updatePassword(dto.getNewPassword());
            return SuccessStatus._OK;
        } else {
            throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
        }
    }
}

 

ChangePasswordDto : 변경할 비밀번호 받기

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ChangePasswordDto {
    private String newPassword;
}

 


2024.08.23 - [Spring/[P] AI 기반 사용자 맞춤형 메뉴와 맛집 추천] - [Springboot] 비밀번호 재설정 설계하기

 

[Springboot] 비밀번호 재설정 설계하기

📂 /user  L 회원 가입  L 회원 탈퇴  L 로그인   L 로그아웃  L 비밀번호 재설정 (로그인 전)  L 비밀번호 재설정 (로그인 후) ⬅️⬅️⬅️   🔧 디자인  🔧 필요한 데이터  L newPassword  🔧

alsrudalsrudalsrud.tistory.com