- 이번 시간에는 로그인하는 기능을 구현해보도록 하겠습니다.
- 우선 회원가입 기능을 구현할 때와 마찬가지로 이번에는 loginForm.jsp 파일을 다음과 같이 수정해줍니다.
- joinForm.jsp 파일과 마찬가지로 <form> 태그의 action 속성을 제거해주었고 <button> 태그는 <div> 태그 바깥으로 빼주었으며 type 속성 대신 id 속성을 추가하여 'btn-login'으로 설정해주었습니다. 또한 <script> 태그를 추가하여 역시 user.js 파일과 해당 파일을 연결해주었습니다.
- 다음으로 user.js 파일의 save 함수 부분을 그대로 복사하여 아래쪽에 붙여넣기 한 뒤 함수 이름을 'login'으로 수정하고 내부 코드를 다음과 같이 수정해주었습니다.
- 이제 username과 password를 통해 select를 수행하여 로그인을 진행해야 하는데 JpaRepository에는 이와 같은 기능을 수행하는 함수가 따로 없으므로 다음과 같이 직접 만들어주었습니다.
- 위 구문은 Jpa Naming 쿼리로써 위와 같은 이름과 형식으로 함수를 구현하면 자동적으로 쿼리문을 수행시켜 줍니다. 아래 주석처리한 함수 구문 또한 같은 기능을 수행하며 두 가지 방식 중 편한 것을 사용하면 됩니다.
- 이제 Service 클래스로 가서 로그인을 위한 함수를 구현해줍니다.
- 이후 Controller 클래스에서는 해당 함수를 사용하여 로그인 기능을 구현합니다.
- 마지막으로 header.jsp 파일을 다음과 같이 수정해줍니다.
- 참고로 해당 구문은 jstl를 이용한 것이며 이를 위해서는 아래와 같은 태그 라이브러리를 추가해주어야 합니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- 마지막으로 pom.xml 파일에서 jstl 라이브러리라 추가되어있는지도 확인한 뒤 프로젝트를 실행하여 회원가입 한 후 로그인하여 결과를 확인합니다.
💡 알게 된 점
- Jpa Naming 쿼리
- session 및 sessionScope를 사용하여 로그인 한 사용자와 로그인 하지 않은 사용자를 구분하는 방법
📌 Reference
'🚗 Backend Toy Project > 스프링 부트 게시판' 카테고리의 다른 글
[스프링부트 게시판] 17. 비밀번호 해쉬 후 회원가입 및 로그인하기 (0) | 2022.05.12 |
---|---|
[스프링부트 게시판] 16. 스프링 시큐리티 체험해보기 (0) | 2022.05.12 |
[스프링부트 게시판] 14. 회원가입 기능 구현하기 (0) | 2022.05.07 |
[스프링부트 게시판] 13. 로그인, 회원가입 화면 만들기 (0) | 2022.05.05 |
[스프링부트 게시판] 12. 메인화면 만들기 (0) | 2022.05.05 |