[카카오로그인] 인가코드 받기 api - state 파라미터

인가 코드 받기 api : REST API | Kakao Developers REST API

아래는 인가 코드 받기 api의 state 파라미터 설명입니다

카카오 로그인 과정 중 동일한 값을 유지하는 임의의 문자열(정해진 형식 없음)
Cross-Site Request Forgery(CSRF) 공격으로부터 카카오 로그인 요청을 보호하기 위해 사용
각 사용자의 로그인 요청에 대한 state 값은 고유해야 함
인가 코드 요청, 인가 코드 응답, 토큰 발급 요청state 값 일치 여부로 요청 및 응답 유효성 확인 가능

Q1. PKCE(Proof Key for Code Exchange)의 개념이라고 생각 되는데 맞나요?
맞다고 한다면 토큰 발급 요청의 state가 인가 코드 요청state와의 동일 여부를 카카오 인증서버에서 확인하는거겠죠?

Q2. 하지만 인가코드 api 설명과 다르게 토큰 발급 요청 api 설명의 파라미터에는 state가 없습니다. 제가 설명을 잘못 이해한 걸까요?

토큰 받기 api : REST API | Kakao Developers REST API

안녕하세요.

PKCE와 state는 다릅니다.

state 상태 파라미터는
인가코드 요청 시 사용되고 카카오 로그인 성공 시 서비스측 redirect_uri 로 그대로 전달됩니다.
이를 이용하여 서비스측에 전달된 인가코드가 실제로 클라이언트가 요청한 코드가 맞는지 확인할 수 있습니다.
때문에 CSRF 공격으로 부터 인가코드 발급 및 토큰 발급 요청을 보호할 수 있습니다.

관련 설명은 redirect_uri 로 인가코드가 전달되면 서비스측에서 곧 접근토큰을 발급 받기에 redirect_uri로 토큰 발급 요청한다는 의미로 이해해 주시면 좋을것 같습니다.
읽기에 따라 혼란을 줄수 있을것 같은데요 적절한 내용으로 보강해 보도록 하겠습니다.

1개의 좋아요

답변 감사합니다
고생하세요~!