[스프링부트 게시판] 15. 로그인 기능 구현하기

2022. 5. 10. 21:34·🚗 Backend Toy Project/스프링 부트 게시판
  • 이번 시간에는 로그인하는 기능을 구현해보도록 하겠습니다.
  • 우선 회원가입 기능을 구현할 때와 마찬가지로 이번에는 loginForm.jsp 파일을 다음과 같이 수정해줍니다.

loginForm.jsp

  • joinForm.jsp 파일과 마찬가지로 <form> 태그의 action 속성을 제거해주었고 <button> 태그는 <div> 태그 바깥으로 빼주었으며 type 속성 대신 id 속성을 추가하여 'btn-login'으로 설정해주었습니다. 또한 <script> 태그를 추가하여 역시 user.js 파일과 해당 파일을 연결해주었습니다.
  • 다음으로 user.js 파일의 save 함수 부분을 그대로 복사하여 아래쪽에 붙여넣기 한 뒤 함수 이름을 'login'으로 수정하고 내부 코드를 다음과 같이 수정해주었습니다.

user.js

  • 이제 username과 password를 통해 select를 수행하여 로그인을 진행해야 하는데 JpaRepository에는 이와 같은 기능을 수행하는 함수가 따로 없으므로 다음과 같이 직접 만들어주었습니다.

UserRepository

  • 위 구문은 Jpa Naming 쿼리로써 위와 같은 이름과 형식으로 함수를 구현하면 자동적으로 쿼리문을 수행시켜 줍니다. 아래 주석처리한 함수 구문 또한 같은 기능을 수행하며 두 가지 방식 중 편한 것을 사용하면 됩니다.
  • 이제 Service 클래스로 가서 로그인을 위한 함수를 구현해줍니다.

UserService

  • 이후 Controller 클래스에서는 해당 함수를 사용하여 로그인 기능을 구현합니다.

UserApiController

  • 마지막으로 header.jsp 파일을 다음과 같이 수정해줍니다.

header.jsp

  • 참고로 해당 구문은 jstl를 이용한 것이며 이를 위해서는 아래와 같은 태그 라이브러리를 추가해주어야 합니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  • 마지막으로 pom.xml 파일에서 jstl 라이브러리라 추가되어있는지도 확인한 뒤 프로젝트를 실행하여 회원가입 한 후 로그인하여 결과를 확인합니다.

pom.xml
Result


💡 알게 된 점

  • Jpa Naming 쿼리
  • session 및 sessionScope를 사용하여 로그인 한 사용자와 로그인 하지 않은 사용자를 구분하는 방법

📌 Reference

  • https://www.youtube.com/@metacoding
 

GitHub - Daegwon-Kim/SpringBoot-JPA-Blog

Contribute to Daegwon-Kim/SpringBoot-JPA-Blog development by creating an account on GitHub.

github.com

저작자표시 (새창열림)

'🚗 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
'🚗 Backend Toy Project/스프링 부트 게시판' 카테고리의 다른 글
  • [스프링부트 게시판] 17. 비밀번호 해쉬 후 회원가입 및 로그인하기
  • [스프링부트 게시판] 16. 스프링 시큐리티 체험해보기
  • [스프링부트 게시판] 14. 회원가입 기능 구현하기
  • [스프링부트 게시판] 13. 로그인, 회원가입 화면 만들기
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[스프링부트 게시판] 15. 로그인 기능 구현하기
상단으로

티스토리툴바