목록개인 공부 (4)
Java / Spring

JWT 를 공부하면서 Access Token 과 Refresh Token 의 흐름에 대해 이해한 내용을 기록하고자 한다. 먼저 사용자가 로그인을 시도하면 클라이언트에서 사용자 인증을 위해 서버로 ID 와 PASSWORD 등의 데이터를 보내 인증 요청을 한다. 서버에서는 클라이언트가 요청한 데이터를 여러 검증을 거쳐 jwt Token 을 응답하게 된다. 이 때, 서버는 두개의 토큰을 클라이언트로 전달하는데 이때 전송되는 Token 이 바로 Access Token 과 Refresh Token 이다. 1. Access Token (생명 주기 : 10min ~ 1hour)- Access Token 은 사용자의 요청을 인증하기 위해 클라이언트에서 자주 사용되며, 상대적으로 짧은 시간 동안만 유효하도록 설계한다.-..

인텔리제이를 사용하여 스프링부트의 내부 서버를 구현하고 REST API 통신을 위해 vscode 로 구현한 로그인 데이터를 백엔드 서버로 요청을 보내고 응답을 받는 테스트를 진행하였다. 나중에도 많이 사용하고 기본적으로 알고 있어야 될 내용이라고 생각해서 기록을 하기로 하였다. 먼저, 프로젝트 구조 상 별도의 webconfig 를 구현할 필요 없이 Spring Security 를 사용하고 있기에 이미 구현해놓은 SecurityConfig 라는 클래스 내부에 백엔드 서버에서 데이터를 보낼 프론트엔트 PORT 번호를 설정한다. 스프링 컨테이너에 등록한 아래의 클래스 내부 CorsConfigurationSource() 메서드 내부에 정보를 입력해준다.(프론트엔드 PORT 번호 : localhost:3000 )..

Object Mapper 란 ? Jackson 라이브러리에서 제공하는 클래스로 클라이언트에서 전송한 JSON 데이터를 Java 객체로 변환해주는 기능이다. - JSON의 키와 Java 객체의 필드를 매칭하여 데이터를 역직렬화한다. 이 과정에서 ObjectMapper 가 사용되는 것이다. 그럼 ObjectMapper 는 내부적으로 어떻게 데이터를 읽는것일까?1. 클라이언트의 JSON 요청 : - 예를 들어 클라이언트에서 Login 을 시도할 때 username 과 password 데이터를 서버에 전송 후 검증을 해야할 때 클라이언트가 서버에 보내는 데이터는 보통 JSON 형식으로 보낸다. 이 데이터를 서버에서는 바로 읽을 수 없다. 해당 데이터를 Java 객체로 변환해야 된다. @Overridepublic..
로그인 후 JWT 토큰을 발급 받아 쿠키에 저장하고 이를 @CookieValue 를 통해 사용하는 로직을 구현 하였다. 토큰 발급 시간을 24시간으로 설정하였지만 1분이 조금 지나면 계속해서 토큰이 만료 되었다. error message : There was an unexpected error (type=Internal Server Error, status=500). JWT expired 106942 milliseconds ago at 2024-12-13T03:22:16.000Z. Current time: 2024-12-13T03:24:02.942Z. Allowed clock skew: 0 milliseconds. io.jsonwebtoken.ExpiredJwtException: JWT expired 1..