안드로이드 카카오 로그인 관련 질문 - 액세스 토큰 검증

안녕하세요.

[1] 사용자 정보 본인 서비스 DB 저장 시 유효성 검증 여부

유사문의 참고 부탁드려요. 카카오 Oauth 로그인 관련 질문 - tim.l 님의 게시물 #2

2-1) 사용자 정보를 받아올 때 id 값은 바뀔 일이 없이 고유한가요?

uuid 가 아니라 v2/user/me 의 id 라면 디벨로퍼스앱과 카카오 계정에 종속적인 고유값입니다.
uuid 라면, 디벨로퍼스앱과 카카오톡 연동된 계정 종속적인 고유값입니다.

2-2) 카카오 리소스 서버 발급 액세스 토큰 저장 여부 및 갱신 관련 질문

우선, 답변에 앞서 디벨로퍼스에서 제공하는 메시지 API는 서비스에서 고객에게 일방 발송하는데 적합하지 않습니다. 메시지 API는 서비스내 카카오로그인으로 가입한 카카오톡 친구간에 1:1로 발송하는 메시지 입니다.

참고. 친구 api와 피커, 메시지 api 사용을 위한 체크 리스트

액세스 토큰이 만료된 경우에는 리프레시 토큰으로 갱신하여 재발급 받거나 다시 카카오 로그인 해야합니다.

REST-API가 아니라 안드로이드 SDK 사용을 전제로한다면, 액세스토큰과 리프레시 토큰을 적절한 보안장치를 두고 백엔드로 전송하여 사용하시면됩니다.


액세스 토큰 격리는 보안상 유리하니 권장 하고 있습니다. 다만, 필요 시 적절한 보안 설정으로 전달하는 것 자체가 문제가 되지 않습니다.

아니면, 메시지를 프론트엔드에서 보내도록 구조를 바꿔야하는 게 맞는 건가 싶습니다.

앞서 참고로 안내드린 링크와 같이 이상황이 아니더라도 프론트에서 백엔드로 중요정보를 전달할 상황은 항상 있으므로 적절한 보안 조치 하시되 운영하시는 서비스 상황에 맞게 취사 선택 하시면 됩니다.

사용자의 카카오 고유 id를 프론트로 전달하는 것에 있어 보안 관련 유의사항이 있을까요?

발신자 수신자 모두 카카오 로그인으로 운영하시는 서비스에 가입하며 친구목록 조회와 메시지 발송에 동의 해야 UUID 조회가능하며,

메시지 발송 시, 액세스 토큰과 UUID의 조합으로 발송하게됩니다.
앞서 참고로 안내드린 링크와 같이 요청의 정합성을 체크하시면 됩니다.

[3] 카카오 리소스 서버 발급 토큰 외 서비스 서버에서의 추가 토큰 발급 시 만료기한

카카오의 액세스토큰과 운영하시는 서비스의 JWT토큰은 용도가 다르다고 생각합니다.

운영하시는 서비스의 JWT토큰은 카카오와 무관하게 자체 제공하는 기능 사용을 위한 접근 제어용이고 카카오의 액세스토큰는 카카오 API호출을 위한 접근 제어용이므로

카카오 API 호출 시, 액세스토큰 만료 여부에 따라 토큰 갱신하거나 갱신 불가능한 경우 카카오 로그인 하도록 제어 해주시면 됩니다.


앞서 참고로 안내드린 링크와 같이 이러한 상황은 카카오 로그인이 없어도 동일하게 발생하니

자체 회원가입 + 각종 소셜로그인(+각종 API) 사용을 전제로 생각해보시면 의사결정하시는데 도움이 될 것 같습니다.

감사합니다.