Spring Framework

[Spring Security] 회원가입, 로그인 구현(2) - 회원가입

꿈꾸는야오옹 2023. 2. 6. 18:03

이전 게시물에서 로그인 기능을 구현했다. 이제 회원가입을 구현해보자.

 

 

먼저 회원가입시 받을 정보들을 DTO로 구성했다. 그리고 builder를 사용해 MemberEntity에 저장했다.

@Setter
public class MemberRegDTO {
	
	private String email;
	private String pass;
	private String name;
	
	public MemberEntity ent(PasswordEncoder pe) {
		return MemberEntity.builder().email(email).pass(pe.encode(pass)).name(name).build();
	}

 

 

그리고 ServiceProcess에 회원가입을 위해 DTO를 저장시키는 메서드를 구성했다. 참고로 MemberRepo는 JpaRepository를 상속받아 구현하였다. 

@Service
public class MemberServiceProcess implements MemberService{
	
	@Autowired
	private MemberEntityRepo repo;

	@Autowired
	private PasswordEncoder pe;
	
	@Override
	public void registration(MemberRegDTO dto) {
		repo.save(dto.ent(pe).addRoles(MyRole.USER));
	}
}

 

 

그리고 여기서 구현한 메서드를  Controller에서 다음과 같이 사용하였다. 

@PostMapping("/join") //회원가입
public String memReg(MemberRegDTO dto) {
    service.registration(dto);
    return "redirect:/sign-in";
}

 

이제 view에서 회원가입에 필요한 폼을 만들어보자. form태그를 이용해 post해준다.

<form action="/join" method="post">
    <div>
        <span>이메일(아이디)</span>
        <input type="text" name="email" placeholder="이메일을 입력하세요">
    </div>
    <div>
        <span>이름</span>
        <input type="text" name="name" placeholder="이름">
    </div>
    <div>
        <span>비밀번호</span>
        <input type="password" name="pass" placeholder="비밀번호를 입력하세요">
    </div>
    <button>회원가입</button>
</form>

 

 

아래를 보면 회원가입에 성공하여 DB에 데이터가 잘 들어온 것을 확인 할 수 있다.

 

회원가입 페이지