카카오 자동 로그인 구현에 있어서 여러 키들

안녕하세요! 카카오톡으로 자동 로그인 구현을 연습하고 있는 안드로이드 앱 개발자 입니다!

다름이 아니고 OAuth 를 실행하는 과정에서 다른 OAuth 들에서와 조금 헷갈리는 점이 있어서 질문을 좀 드리려고 하는데요.

여기가 질문하는 곳이 맞는지는 잘 모르겠지만 한번 올려봅니다 ㅠ

일단 Access Token 과 Refresh Token 이 회원의 Resource 에 접근하는데 필요한 것들인걸로 알고 있습니다. 이는 카카오 같은 기관에서 발급해 주는 것인데,

네이티브 앱 키, 해시 키, Authorization Code (인증 코드) 이 세가지가 정확히 어떤 역할들을 하는지 헷갈려서 올리게 되었습니다.

저희 눈에 보이는 것과 안 보이는 것을 토대로 간단한 설명 부탁드려도 될까요?

바쁘신 와중에 읽어주셔서 감사합니다 :slight_smile:

  • 네이티브앱키는 OAuth에서 보통 client_id 라고 불리는 앱의 식별 값입니다.
  • Authorization code 는 액세스 토큰을 발급받기 위해 임시적으로 발급하는 코드입니다.
  • 해시키는 안드로이드 apk를 빌드할 시에 사용되는 사이닝키의 signatures 를 해시한 값으로 앱의 위변조 여부를 확인하기 위하여 사용되는 값입니다.

위 두개는 OAuth 2.0 스펙에 있는 키값들이기 때문에 다른 OAuth 프로바이더들과 크게 다르지 않을텐데요.

해시키 같은 경우는 위변조된 안드로이드 앱에서의 호출을 막기 위해 페이스북 SDK 에서도 사용하는 값이에요.

더 궁금한 점이 있으시면 댓글 달아주세요!

설명 진짜 너무너무너무 감사드려요 ㅠㅠㅠㅠ 보통 다 답글 안달아 주던데 역시 카카오는… ㅠㅠ

혹시 그리고 Global Application 이 앱 실행될 때 선언되게 manifest 에서 설정 되어 있는 구조인것 같아요!
이 클래스 onCreate 에서 KakaoSDK.init(new KakaoAdapter()) 이런 식으로 아답터를 준비 시켜놓는 것 같은데
만약 유저가
카카오톡 OAuth 사용을 희망하지 않을 경우 굳이 아답터를 준비 시켜놓을 필요가 없을것 같은데
버튼 눌렀을 때 준비시켜놓고 세션 확인 등을 해도 되는 거죠?