SignupDto
@Data
public class SignUpDto {
private String name;
private String username;
private String email;
private String password;
}
AuthController
객체 필드 주입(DI)
@Autowired
private UserRepository userRepository;
@Autowired
private RoleRepository roleRepository;
@Autowired
private PasswordEncoder passwordEncoder;
@PostMapping("/signup")
public ResponseEntity<String> registerUser(@RequestBody SignUpDto signUpDto){
// 유저네임 체크
if(userRepository.existsByUsername(signUpDto.getUsername())) {
return new ResponseEntity<>("사용할수 없는 유저네임 입니다.", HttpStatus.BAD_REQUEST);
}
// 이메일 체크
if(userRepository.existsByEmail(signUpDto.getEmail())) {
return new ResponseEntity<>("사용할수 없는 이메일 입니다.", HttpStatus.BAD_REQUEST);
}
User user = new User();
user.setName(signUpDto.getName());
user.setUsername(signUpDto.getUsername());
user.setEmail(signUpDto.getEmail());
user.setPassword(passwordEncoder.encode(signUpDto.getPassword()));
Role roles = roleRepository.findByName("ROLE_ADMIN").get();
user.setRoles(Collections.singleton(roles));
userRepository.save(user);
return new ResponseEntity<>("성공적으로 가입했습니다.",HttpStatus.OK);
}
유저네임이나 이메일이 등록되어 있을 경우