userId를 매번 입력받지않고도 로그인한 유저 정보를 가져올 수 있을까 ? (JWT)
·
Spring/JWT
들어가며스프링 시큐리티는 SecurityContext에 인증 객체(Authentication)를 저장한다public String getCurrentUser() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); // Principal 객체 (UserDetails 구현체) 가져오기 Object principal = authentication.getPrincipal(); if (principal instanceof UserDetails userDetails) { return "현재 로그인한 사용자: " + userDe..
Line 소셜 로그인 (OAuth)
·
Spring/OAuth
서론먼저 카카오, 구글 OAuth는 전에 구현해본 적이 있었지만, LINE OAuth를 구현하게된 계기를 먼저 얘기해보려고 한다. 일단 SOPT에서 최종적으로하는 프로젝트의 주제가 일본고객을 대상으로 하는 K-뷰티 큐레이션 서비스였기때문에, 일본인 고객들이 우리 서비스의 주 타겟 층이였다일본내 Line 점유율 물론 소셜로그인에 대한 구체적인 비율을 직접적으로 공개하는 공식 통계는 없지만, 다양한 신뢰할 만한 데이터와 업계 리포트를 통해 LINE이 압도적으로 높은 소셜 네트워크 수단임을 알 수 있었다https://datareportal.com/reports/digital-2025-japan 위 통계를 보더라도, 압도적으로 LINE 점유율이 일본에서 높다는 사실을 알 수 있었기에, 사용자 진입 장벽을 낮추..
Refresh Token은 어떻게 관리할까 (JWT)
·
Spring/JWT
서론최근에 웹서비스를 개발할때는 REST API를 중심으로 클라이언트와 서버 간 상태를 최대한 분리하는 것을 지향한다. 이 과정에서 토큰 기반 인증(Token-based Authentication) 은 서버가 세션 상태를 유지하지 않으면서도, 클라이언트의 인증 정보를 안전하게 검증할 수 있는 방법인데, 오늘은 정말 여러가지 방법이 있는 Refresh Token 관리 방법에 대해서 다뤄보려고한다 토큰 기반 인증과 관리의 중요성토큰 기반 인증의 핵심은 “Access Token”랑 “Refresh Token”인데, 간단하게만 설명하자면Access Token: 비교적 짧은 유효기간(예: 5분~1시간)을 갖고, API 호출 시 Authorization: Bearer 헤더를 통해 서버가 클라이언트를 검증Refre..
P-프로젝트(JWT 를 통한 인증/인가, Spring)
·
Spring/JWT
서론해당 포스팅은 P-프로젝트를 진행하면서 진행했었던, Spring Security에서 사용되는 JWT 인증/인가 에 대해 작성해보겠다Spring Security는 애플리케이션에서 인증/인가 에 대한 설정을 편리하게 도와주는 역할을 해준다위 사진들을 보면 알 수 있듯이, Filter는 클라이언트의 요청이 서버에 도달하기 전에 실행되어 JWT 토큰의 유효성을 검사하고, 해당 토큰에 기반한 사용자 인증을 수행한다  따라서 Filter 가 하나의 영역에서 인증 인가를 수행하는 " 단위 " 라고 봐주면 될거같다 1. 사용자 토큰 검증을 통한 인증/인가 를 수행하는 JWT Filter 를 만들어서 유효성 검사(토큰이 유효하지 않거나 존재하지 않는 경우, 예외를 발생)2. 인증 성공시, 검증된 토큰을 기반으로 사용..