8.4 회원가입 구현

SummerToday·2024년 2월 24일
1
post-thumbnail
post-custom-banner

서비스 메서드 구현

// dto - AddUserRequest.java

@Getter
@Setter
public class AddUserRequest {
        private String email;
        private String password;
}
  • 사용자 정보를 담는 dto 객체 생성

// service - UserService.java

@RequiredArgsConstructor
@Service
public class UserService {
    private final UserRepository userRepository;
    private final BCryptPasswordEncoder bCryptPasswordEncoder;

    public Long save(AddUserRequest dto) {
        return userRepository.save(User.builder()
                .email(dto.getEmail())
                .password(bCryptPasswordEncoder.encode(dto.getPassword()))
                .build()).getId();
    }
}
  • AddUserRequest 객페를 인수로 받아 데이터베이스에 저장한다.

  • 패스워드를 저장할 때 시큐리티를 설정하며 패스워드 인코딩용으로 등록한 빈을 사용한다.


컨트롤러 구현

@RequiredArgsConstructor
@Controller
public class UserApiController {

    private final UserService userService;

    @PostMapping
    public String signup(AddUserRequest request){
        userService.save(request); // 회원 가입 메서드 호출
        return "redirect:/login"; // 회원 가입이 완료된 이후 로그인 페이지로 이동
    }

}
  • 회원 가입 처리가 끝난 후 로그인 페이지(/login URL)로 돌아가기 위해 redirect: 접두사를 붙여준다.



해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽
profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글