Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

[Spring Boot] Spring Security + jwt 방식 인증 로그인 구현하기 본문

카테고리 없음

[Spring Boot] Spring Security + jwt 방식 인증 로그인 구현하기

취준er 2024. 2. 1. 05:22

소스코드 https://github.com/workingoniit/SpringSecurity_Jwt.git

 

📌2024.02.02 기준 내용을 잠시 내려두었다. 코드를 리팩토링하고 설명을 보완해서 재업로드 예정!

 

 

 

 

❗️이 글에서는 refresh token을 사용하지 않는 방식에 대해 설명한다. 즉, 로그인 시 access token을 발급하고 access token이 만료되면 새로 access token을 발급하는 방식이다.

 

 

개발 환경: java 17, Spring Boot 3.1.4

 

배경

직전 프로젝트를 진행하며 시간을 크게 낭비한 지점이 몇 개 있었는데, 그 중 하나가 이 Spring Security 도입이다. spring boot 3.0.0 이후로 Spring Security 설정 방식이 바뀌었다. 구글링해서 나오는 대부분의 자료들에 나오는 코드가 통하지 않았고 최근에 올라온 블로그 글을 따라해도 스프링이 처음이었던 나에게는 매우 어려운 과정이었다. 😂

여담이지만 일주일이나 매달려서 겨우 돌아가게 만들어놨는데, 기획이 바뀌어 우리 서비스는 새로운 유저의 회원가입을 받지 않게 되었고 자연스럽게 회원가입/로그인에 대한 중요도가 떨어지면서 (구현이 복잡한) 토큰 방식을 사용하지 않게 되었다. 토큰이 아니더라도 세션이나 쿠키를 쓰면서 시큐리티를 유지할 수도 있었겠지만 당시 기획이 뒤집히며 로그인에 더 이상 시간을 쓸 수가 없었다. 결국 시큐리티를 빼고 로그인 시 세션 스토리지에 아이디를 저장해 필요 시 프론트엔드에서 꺼내 백엔드로 쏴주는 식으로 구현했다. 지금도 url을 알면 페이지 접근이 가능하다. 겉보기에는 문제가 없지만 내 입장에서는 크게 아쉽지 않을 수 없다ㅠㅠ....

그런 마음에 이 글을 쓰게 되었다. 이론을 이해하는 게 중요하지만 상황 상 빠른 구현이 우선순위를 가져갈 때도 많다. 누군가에게 도움이 되기를 바란다. 

 

 

! Spring Security란

 

! jwt란

 

 

 

 

참고 링크

https://spring.io/projects/spring-security#learn

https://velog.io/@jkijki12/Spirng-Security-Jwt-로그인-적용하기