본 프로젝트는 “스프링부트 3 백엔드 개발자 되기” 서적을 참고하여 진행하였음
회원가입 구현하기
•
사용자 정보 담고 있는 객체 작성
package com.example.msblog.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class AddUserRequest {
private String email;
private String password;
}
Java
복사
•
AddUserRequest 객체를 인수로 받는 회원 정보 추가 메서드 작성 - 서비스
package com.example.msblog.service;
import com.example.msblog.domain.User;
import com.example.msblog.dto.AddUserRequest;
import com.example.msblog.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
@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();
}
}
Java
복사
•
회원가입 폼에서 회원 가입 요청을 받으면 서비스 메서드 사용해 사용자 저장 후 로그인 페이지로 이동하는 signup 메서드 작성
package com.example.msblog.controller;
import com.example.msblog.dto.AddUserRequest;
import com.example.msblog.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
@RequiredArgsConstructor
@Controller
public class UserApiController {
private final UserService userService;
@PostMapping("/user")
public String signup(AddUserRequest request) {
userService.save(request); // 회원 가입 메서드 호출
return "redirect:/login"; // 회원 가입이 완료된 이후에 로그인 페이지로 이동
}
}
Java
복사