Skip to content

[카카오 로그인] 리프레시 토큰 & 엑세스 토큰 갱신 이슈 #5

@daumi125

Description

@daumi125

문제 상황 요약

카카오 엑세스 토큰(access token)

유효 시간: 약 6시간

따라서 주기적으로 리프레시 토큰(refresh token) 을 이용해 엑세스 토큰을 갱신해야 함.

문제 발생

사용자가 로그인 버튼을 누를 때마다 새로 로그인 요청을 보내면서, 리프레시 토큰이 계속 갱신됨.

즉, 이전에 저장했던 리프레시 토큰과 새로 받은 토큰 값이 일치하지 않아 혼란이 발생함.

원인 분석

카카오 로그인 시도 시마다 새로운 refresh token이 발급되는 구조

카카오 API는 로그인 요청 시 새로운 refresh token을 발급할 수 있음.

동일한 유저라 하더라도 재로그인 시 새로운 token이 전달되면, 기존 token과 불일치하게 됨.

결과적으로 기존에 저장된 refresh token이 무의미해지는 문제가 발생.

해결 방안

refresh token을 DB에 고정하여 관리

유저별로 refresh token을 DB에 저장하고, 필요 시 이를 이용해 access token 재발급 요청.

로그인 시 리프레시 토큰 변경 여부 확인

사용자가 카카오 로그인을 새로 시도했을 때,

응답에서 받은 refresh token이 기존에 저장된 값과 다른지 확인

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions