«   2026/09   »
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
Tags
more
Archives
Today
Total
«   2026/09   »
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
Tags
more
Archives
Today
Total
관리 메뉴

코더

(최종 프로젝트)Oauth2.0 정리 본문

최종 프로젝트

(최종 프로젝트)Oauth2.0 정리

자바스티안 2026. 8. 13. 13:42

배경 : 최종 프로젝트에서 한번 더 api 요청 흐름이나 정리가 필요하다 느껴 작성하게 되었다.

 

발생 오류 : 

 

// 해당하는 로그인 요청은 잘 받아왔는데 계속 다른곳으로 리다이렉팅 하며 url이 계속 바뀌는 버그가 일어났다..

 

해결 :
생각을 해보니 Oauth2.0 검증 완료된 코드 마지막에 / 로 리다이렉팅을 시켜준 후 아무 조치도 취하지 않았다.  아래 코드를 간단하게 추가하니 오류가 해결되었다.

@RestController
public class TestStaticController {

    @GetMapping("/")
    public String home() {
        return "로그인 성공";
    }
}

 

 

흐름도 정리 :

[OAuth 2.0 인증]

네이버 로그인
    ↓
Authorization Code
    ↓
Access Token
    ↓
네이버 사용자 정보 조회
    ↓
CustomOAuth2UserService
    ↓
DB 회원 조회/생성
    ↓
OAuth2 인증 성공
    ↓
onAuthenticationSuccess()
 

여기까지가 네이버 OAuth 2.0의 역할

 

[우리 서비스 JWT 인증]

브라우저
 ↓
Cookie: accessToken=우리 JWT
 ↓
JwtAuthenticationFilter
 ↓
Cookie에서 JWT 추출
 ↓
JWT 검증
 ↓
userId / role 추출
 ↓
Authentication 생성
 ↓
SecurityContext 저장

 

즉,

     [ 네이버 ]
                    │
                    ▼
             OAuth 2.0 로그인
                    │
                    ▼
        CustomOAuth2UserService
                    │
             사용자 조회/가입
                    │
                    ▼
        OAuth2SuccessHandler
                    │
              우리 JWT 발급
                    │
              accessToken 쿠키
                    │
                    ▼
             redirect("/")
                    │
            ※ 새로운 HTTP 요청
                    │
                    ▼
        ┌─────────────────────┐
        │ Spring Security     │
        │    Filter Chain     │
        └─────────────────────┘
                    │
                    ▼
       JwtAuthenticationFilter
                    │
            쿠키에서 JWT 추출
                    │
               JWT 검증
                    │
           userId / role 추출
                    │
                    ▼
             SecurityContext
                    │
                    ▼
          SecurityConfig 인가
                    │
          ┌─────────┴─────────┐
          ▼                   ▼
       권한 있음            권한 없음
          │                   │
       Controller          403/인증실패

// 이렇게 흐름도가 그려진다.

 

결과 : 

 

// 로그인이 정상적으로 된 모습이다.

'최종 프로젝트' 카테고리의 다른 글

깃허브 관리 / 발생한 문제점  (0) 2026.08.14
(최종 프로젝트) 구글 recaptcha  (0) 2026.08.13