🚗 Backend Toy Project
[스프링부트 게시판] 17. 비밀번호 해쉬 후 회원가입 및 로그인하기
📝 BCryptPasswordEncoder 이번 시간에는 사용자가 회원가입을 할 때 작성한 비밀번호를 해쉬로 암호화한 뒤 데이터베이스에 저장하고 로그인 해보는 작업을 수행해보도록 하겠습니다. 우선 지난 시간에 구현한 SecurityConfig 클래스에 아래와 같은 함수를 추가해주었습니다. 위 함수는 BCryptPasswordEncoder 객체를 반환하며 @Bean 어노테이션을 메서드에 명시해주어 스프링 빈으로 등록함으로써, 해당 객체를 원할 때 가져다 쓸 수 있도록 하였습니다. 해당 객체는 암호화하기 위한 메소드를 가지고 있으며 우리는 이 객체를 사용할 것입니다. UserService 클래스를 열고 회원가입 함수에 다음과 같이 코드를 추가해줍니다. 다음으로 이전 시간에 작성하였던 SecurityConfi..
[스프링부트 게시판] 16. 스프링 시큐리티 체험해보기
📝 Spring Security 이번 시간에는 스프링 시큐리티 라이브러리를 사용하여 로그인 기능을 수정해보도록 하겠습니다. 스프링 시큐리티에 대한 보다 자세한 설명은 아래 링크에서 확인하실 수 있습니다. 스프링 부트 Spring Security 📝 스프링 시큐리티란? 스프링 시큐리티는 스프링 기반 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. 주로 서블릿 필터와 이들로 구성된 필터체인으 daegwonkim.tistory.com 우선 pom.xml 파일에서 이전에 주석처리 해놓았던 시큐리티 라이브러리와 관련된 부분을 주석 해제해주었습니다. 이후 UserApiController에 구현한 로그인 함수를 주석처리 한 뒤 프로젝트를 실행하여 결과를 확인해봅니다. 그럼 위와 ..
[스프링부트 게시판] 15. 로그인 기능 구현하기
이번 시간에는 로그인하는 기능을 구현해보도록 하겠습니다. 우선 회원가입 기능을 구현할 때와 마찬가지로 이번에는 loginForm.jsp 파일을 다음과 같이 수정해줍니다. joinForm.jsp 파일과 마찬가지로 태그의 action 속성을 제거해주었고 태그는 태그 바깥으로 빼주었으며 type 속성 대신 id 속성을 추가하여 'btn-login'으로 설정해주었습니다. 또한 태그를 추가하여 역시 user.js 파일과 해당 파일을 연결해주었습니다. 다음으로 user.js 파일의 save 함수 부분을 그대로 복사하여 아래쪽에 붙여넣기 한 뒤 함수 이름을 'login'으로 수정하고 내부 코드를 다음과 같이 수정해주었습니다. 이제 username과 password를 통해 select를 수행하여 로그인을 진행해야 하는..
[스프링부트 게시판] 14. 회원가입 기능 구현하기
이번 시간에는 실질적인 회원가입 기능을 구현해보도록 하겠습니다. 우선 이전시간에 작성한 joinForm.jsp 파일의 코드를 다음과 같이 변경해주었습니다. 수정한 부분은 태그의 action 속성을 제거해주었으며, 태그를 태그 바깥으로 이동시켜주었고 태그의 submit 속성 대신 id 속성을 추가하여주었습니다. 또한 코드 맨 아래에 이제 실제 데이터를 insert하는 작업을 수행해보도록 하겠습니다. 우선 새로운 패키지를 생성하고 클래스를 추가하여 다음과 같이 구현해줍니다. 이후 회원가입 오류에 대한 예외처리를 위해 이전에 작성했던 GlobalExceptionHandler 클래스를 다음과 같이 수정해줍니다. 이후 Postman을 통해 post 요청을 수행하여 테스트 해보았습니다. 정상적으로 데이터가 들어가는..