카카오 로그인 및 로그아웃 문의 드립니다

개발 환경 : Spring Boot 3.2.5
앱 ID : 1072486


안녕하세요.
카카오 로그인 및 로그아웃을 이용하여 서비스 서버를 개발하고 있습니다.

카카오 로그인을 통해 회원가입(첫 로그인 시) 및 로그인을 진행하여 자체 서비스의 토큰을 발급하여 서비스를 이용할 수 있도록 설계를 진행 중입니다.

여기서 문제는 자체 서비스 토큰을 발급한 이후에는 카카오에서 발급해준 Access/Refresh 토큰은 사용하지 않는다는 것입니다.

해당 토큰들을 만료처리하기 위해서는 로그아웃 기능을 사용해야 하는것으로 이해했으나

“공용 PC와 같이 사용자 계정 보안에 주의가 필요한 환경이거나, 사용자가 다른 카카오계정으로 다시 로그인하도록 해야 하는 상황이라면 카카오계정과 함께 로그아웃 기능을 사용합니다.”
라는 문구가 있는 것을 확인했습니다.

해당 기능 이외에 카카오 계정 로그아웃 API가 존재할까요?

없다면 자체 서버에서 카카오에서 발급받은 Access/Refresh 토큰을 관리하지 않아도 카카오계정과 함께 로그아웃 API 를 사용하는데는 전혀 문제가 없는지 궁금합니다.


P.S.

카카오 로그인 이후 자체 토큰을 발급해서 서비스를 사용하고 카카오는 로그아웃하는 방법이 있는지 궁금해서 문의드린 내용입니다. 제가 생각한 흐름은 아래와 같습니다.

  1. 카카오 로그인
  2. 자체 토큰 발급
  3. 카카오 로그아웃
  4. 자체 토큰으로 서비스 이용

감사합니다.

안녕하세요.

카카오에서 전달하는 접근토큰은 서비스의 인가처리를 위해 자체 관리하는 토큰과 무관합니다.

서비스측 환경과 기호에 따라 처리하시면되며, Spring Boot사용하시는 것으로 보아 카카오의 접근토큰은 백엔드에서만 취급하시는 것으로 보입니다. 이 경우 해당 토큰에 대한 만료(로그아웃)처리는 서비스측 기호에 따라 하실 수 있지만, 사용자 브라우저에 로그인된 카카오 계정의 로그아웃 처리는 사용자 의사 없이 서비스에서 임의로 처리하실 수 없기에 카카오계정과 함께 로그아웃 기능을 제공하고 있습니다.

일반적으로 접근토큰은 더 이상 사용의사가 없는 보안을 위해 만료 시키기도 하며 그렇지 않고 그냥 두기도 합니다.
그냥 두는 경우 접근토큰 발급 방식에 따라 수시간 후 자동 만료 됩니다.

1개의 좋아요

woody.ho님이 말씀해주신 대로 accessToken은 카카오 유저 정보를 가져와서 저희 서비스 회원가입 및 로그인 처리를 위해 사용되며 이후로는 사용되지 않습니다.

보안 측면에서 해당 토큰을 만료 시켜야 하나? 라는 의문이 들어 토큰을 만료시키는 김에 카카오 계정의 로그아웃도 같이 진행했으면 좋겠다 라는 생각이 들었습니다.

woody.ho 님의 답변을 통해 카카오의 accessToken과 refreshToken 은 만료될 때까지 그대로 두고 카카오계정과 함께 로그아웃 기능을 사용하기로 했습니다. 답변 감사합니다.

추가적으로 혹시 카카오의 access 및 refresh 토큰의 유효 기간을 조절할 수 있는 방법이 있을까요? 아니면 해당 토큰들의 유효기간은 고정되어있을까요?

refresh token은 만료시간이 2달이며 access token은 사용된 앱 키에 따라 만료시간이 결정됩니다.

NATIVE APP KEY: 12시간
JAVASCRIPT APP KEY: 2시간
REST API APP KEY: 6시간

자세한 내용은 아래 가이드를 참고 부탁드립니다.

이해하기 | Kakao Developers 이해하기 - 참고:토큰

1개의 좋아요

답변 감사합니다!