제가 소셜로그인을 동반한 서비스를 만드는게 처음이라 보통 제가 생각한 방법으로 하는지 다른 방법이 있는지 경험많으신분들에게 여쭤봅니다
전제 :
1. 로그인시 카카오토큰을 백에서 받아오고 자체 서비스 토큰반환
2. 카카오토큰은 프론트에 노출되지 않는다
3. 자체 서비스 토큰에는 별 의미 없는 식별자만있고 카카오 토큰이 필요한 API를 호출할때는 식별자를 백으로 들고가서 카카오토큰을 조회하고 그 토큰으로 백에서 요청을한다.
문제 : 그런데 카카오토큰엔 만료시간이 있어서 사용자입장에서는 서비스 로그인은 되어있는데 카카오토큰이 만료되어서 카카오API가 조회되지 않을수도 있을거같아요
제가 생각한 방법은 아래입니다
해결책 : 자체서비스토큰과 카카오토큰의 생명주기를 같게해서 자체서비스토큰을 갱신할때 카카오토큰도 갱신한다.
왜냐하면 자체서비스토큰과 카카오토큰의 생명주기가 다를경우 카카오API를 호출할때마다 토큰 만료시간을 조회하고 호출해야때문에
지피티는 자체서비스토큰을 7일정도로 길게잡고 API호출할때 카카오 엑세스토큰이 만료되었으면 리프레시토큰으로 갱신하는 로직을 넣으라고하네요
그런데 저는 따로따로 호출할때마다 검사하면 로직속도도 느려지고 한번에 갱신하는것이 일관성도 있는거같고 카카오 토큰의 6시간이 그렇게 짧은것같지는 않아서 고민입니다
다들 이렇게하나요? 아님 다른 관리법이 있을까요?
- dc official App
카카오토큰이 authorization code를 말하는건가요? - dc App
아뇽 그건 인가코드고 한번쓰고 버리는거에여 엑세스토큰과 리프레시토큰 말하는거에여 - dc App
난 자체 서비스 세션이랑 카카오 토큰 생명주기를 다르게 가져가서 카카오 액세스 토큰이 만료되면 리프레시 토큰으로 새로 발급하는 로직 넣어줬음. 다르게 가져간 이유는 굳이 톰캣 세션 만료시간 만질 이유가 없어서 각자 기본값으로 가져감. 어차피 님처럼 해도 문제는 없으니 걍 본인이 좋다고 생각하는거로 하는게 좋다고 생각함
ㅇㅎ ㄱㅅㄱㅅ여 - dc App