SpringBoot/스프링부트 스터디

스프링부트 스터디 4주차 - 회원가입, 로그인 기능

공부 기록장 2024. 6. 22. 00:50

1. 회원가입 기능 구현

회원 가입 기능을 구현하기 위해서는 회원 정보에 관한 데이터를 저장하고 관리하는 엔티티와 리포지터리, 서비스, 폼 등이 필요하다.

엔티티 구현

 

리포지터리 구현

 

서비스 구현

서비스에서 비밀번호는 보안을 위해 BCryptPasswordEncoder 클래스를 사용하여 저장했는데 

객체를 직접 new 로 생성하는 방식보다는 PasswordEncoder 객체를 빈으로 등록해서 사용하는 것이 좋다고 한다.

(만약 암호화 방식을 변경하면 BCryptPasswordEncoder 를 사용한 모든 프로그램에서 수정해야하기 때문에)

 

 

 

따라서 다음과 같이 SecurityConfig.java 파일에 PasswordEncoder 객체를 빈으로 등록하고

 

 

 

서비스 수정

다시 서비스에서 new 로 객체를 생성했던 부분을 삭제하고 형광색부분을 추가해주었다.

 

 

 

 

폼 구현

 

컨트롤러 구현

 

패스워드가 다를 경우 화면

 

 

2. 로그인,  로그아웃 기능 구현

 

화면 구현

 

컨트롤러 코드 추가

 

로그인 후 ADMIN 또는 USER 권한을 부여하기 위한 클래스

 

스프링 시큐리티를 사용하여 사용자 인증을 처리하는 서비스 클래스

 

 

 

 

스프링 시큐리티 인증처리를 위한 빈 추가

 

 

 

 

로그아웃 설정 추가