본문 바로가기

Spring3

Refresh Token을 Redis로 관리해보자! feat.리팩토링 목차 1. 도입 이유 사실 이전 refresh Token은 DB에 저장해서 인증 시에 반환하는 용도로 썼다. 여기서 드는 의문이 우리가 세션 로그인 대신 JWT를 도입하는 이유는 무상태성 + 서버의 부담을 줄이고 싶다는 이유이다.그런데 refresh Token을 DB에 저장하게 된다면 이러한 장점이 없어지지 않을까?.. 찾아 본 결과 1. 무상태성 유지DB에 저장하는건 사실 무상태성이 깨지는 것은 아니다.무상태성이 깨지는 경우는 클라이언트에 대한 상태를 유지하는 경우이다. 즉 db 자체에 refresh Token을 저장한다고 깨지지 않음!즉 무상태성을 유지할 수 있음 2.서버의 부담db에 접근 하는 것이이 서버쪽 부담이 될 것이라고 생각하지만 리프레시라는 동작은 굉장히 드물게 일어나.. 2025. 5. 16.
My Record - OAuth2 handler가 동작하지 않는 에러 google로 OAuth2 로그인을 구현했으나, 로그인 시 문제 상황은 기대 : 인증 후 /articles?token=로 리다이렉트되길 원했지만, 실제 : 리다이렉트가 이루어지지 않고, 기본 경로(/)로 이동 내가 지정해놓은 handler를 타지 않았다. 일반적인 실패라면 failureHandler라도 탔을텐데 타지 않고 redirect 주소도 무시했다.. OAuth2 로그인 흐름 개요 총 크게 3번의 흐름으로 http 요청 및 응답 사이클이 돌아간다. 1. 클라이언트 → 서버 (OAuth2 로그인 요청)주요 흐름:1️⃣ 사용자가 /login 페이지에 접근2️⃣ Spring Security가 /oauth2/authorization/google로 리다이렉트3️⃣ 구.. 2025. 4. 3.
My Record - spring Security 로그아웃 예전에 프로젝트에서 Security를 맡았던 기억이 있는데,그땐 logout의 경우 인증 정보를 강제로 없앴다 (따로 요청 없이 프론트에서 인증 정보를 없애버렸다..) 여튼 logout을 하는데 왜 request와 response가 둘 다 필요한 지 이해가 안가 찾아보니.. request는 서버 쪽을 관리한다면response로 클라이언트 측 쿠키나 상태를 정리하게 해야한다. SecurityContextHolder.getContext().getAuthentication(): 현재 인증된 사용자의 인증 객체를 가져옵니다.logout(request, response, authentication): 세션 종료, 컨텍스트 정리, 쿠키 삭제 등을 수행합니다. request와 response를 둘 다 넘.. 2025. 3. 20.