가입(signup)

jb kim·2022년 3월 10일
0

REST API 블로그 앱

목록 보기
50/65

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);
	}

유저네임이나 이메일이 등록되어 있을 경우

profile
픽서

0개의 댓글