세션 대신 JWT를 사용하기 위해 각종 코드를 적용하면서 코드를 그대로 가져오려니 이해안되는 부분이 많았다. 코드도 복잡하고 동작 과정도 모르는 상태로 사용하려니 JWT 형식 변경이나 유지보수에 어려움이 있을게 뻔해서 자주 볼 수 있게 정리해보려고 한다. 참조 https://blog.javabom.com/minhee/session/spring-security-1/spring-security https://bcp0109.tistory.com/301 JWT 적용을 위해 봤던 코드 및 로직들 1. Why JWT? JWT의 특징 사용자 인증에 필요한 모든 정보를 토큰에 담아 클라이언트(React)에 저장하기 때문에 별도의 DB 테이블이 필요 없다. 일반 토큰과의 가장 큰 차이점 분산 마이크로 서비스 환경에서 클..
과제 프로젝트를 진행하던 중 어느정도 기능 구현이 완성되고 실 테스트 단계에 들어갈 때, 관리 시스템에 로그인 기능이 꼭 필요하다는 결론이 나왔다. 남은 시간이 별로 없었기에 여러 방법 중 코드 구현이 비교적 짧은 Session 기반 로그인 기능을 사용해보았지만 리액트와 연도에서 근본적인 문제가 발생했다. 1. 문제 발생 Session(이하 세션) 인증 로직을 구현하고 React에 쿠키를 통해 세션 정보를 보낼 때 세션이 유지되지 않는 문제가 발생했다. 분명히 포스트맨이나 테스트 코드로는 세션이 존재하고 쿠키값도 넘어와서 사용했지만 React에서만 유지되지 않았다. 이 문제를 CORS 이슈라고 하는 것 같다. 이는 다음에 다뤄보겠다. React와 Spring의 포트가 다르기 때문에 React에서 서버에서..