지금 저희는 하이브리드형식으로 웹에서 REST API를 이용하여 로그인 처리를 하고있습니다.
근데 앱내에서는 웹에서 로그인처리를 하다보니 카카오톡앱을 호출하는것이 아니라 카카오톡웹홈페이지를 이용하여 계정을 받게 되는데
이 부분을 카카오톡앱을 이용하여 로그인처리 형식으로 바꾸려고합니다.
REST API를 이용하긴 위해선 access token을 받아와야한다는것만 알고있는데
그걸받아와서 자세히 어떤식으로 처리해야하나요??
웹에서는 이미 다 구현되어있는 상태입니다.
또는 웹에서 카카오톡앱을 호출하는 방법이 있을까요?? 앱에서 따로 액션이없이??
@image5956 javascript SDK를 사용하여 모바일 웹기반의 외부 브라우저에서 로그인을 할 경우 카카오톡 앱으로 스위칭을 하여 로그인이 가능합니다. 다만 커스터마이징되어 있는 인앱브라우저까지는 지원을 안하고 있는데요, 우선 아래 내용을 한번 참고해 보세요!
https://devtalk.kakao.com/t/topic/20684
https://devtalk.kakao.com/t/topic/19931
감사합니다 ^^
참고해보고 질문사항 있으면 답글 다시 남기겠습니다
알려주신 페이지를 이용하여 확인해 보았습니다.
웹뷰에서 실행을하니 그냥 일반적으로 카카오웹페이지가 떠서 로그인화면이 뜹니다.
카카오톡앱이 실행되는게 아니라요
일반 크롬브라우져에서 실행하니 토큰값을 가져오긴 합니다만…
크롬브라우져에서 어떻게 토큰값을 가져오는지도 모르겠네요
카톡앱을 이용한 간편로그인 지원인데 말이죠ㅠㅠ
제가 잘못 이해하고 있는게 있을까요??
@image5956 (확인차)로그인 화면이 뜰때의 웹뷰가 자체 인앱브라우저이지요? 자체 인앱브라우저의 경우 카톡앱 이용을 막아 놓긴 했어요. 일반 인앱브라우저에서도 카톡앱 이용할 수 있도록 확장하는것은 좀 고민해 볼께요.
일반 크롬브라우져에서 토큰값이 나왔다는 것은 로그인을 성공 하신거에요. 해당 토큰으로 사용자 정보 요청을 하시면, id 및 닉네임, 프로필 사진 등을 받을 수 있어요.
아 … 그렇군요 그러면 앱에서 카카오톡 연동을하려면
앱에서 엑세스토큰을 가지고와서 웹으로 정보요청을 할수있나요??
rest api처럼?? 앱에서 엑세스토큰을 가져오는건 onSessionOpened 이후에 Session.getCurrentSession().getAccessToken()
이런식으로 받아오니까 받아와지더라구요
앱에서 받아온 엑세스토큰을 이용하여 rest api와 동일하게 사용할수있나요??
@image5956 아, 해당 케이스의 경우 번거롭지만 토큰 변환을 해 주셔야 해요. 앱에서 받은 토큰의 경우 보안 레벨이 조금 높고 만료 시간도 길기 때문에 바로 REST API에서 사용하시기에는 무리가 있어요. 즉, 앱 플랫폼 → 웹 플랫폼 토큰 변환이 필요한데요, 아래의 문서처럼 가능할것 같네요. 앱에서 받은 refresh token을 이용하여 REST API용 access token을 받을 수 있어요.
사용자 토큰 갱신 부분을 보시면 되요.
curl -v -X POST https://kauth.kakao.com/oauth/token \
-d 'grant_type=refresh_token' \
-d 'client_id={REST API의 app_key}' \
-d 'refresh_token={앱에서 받은 refresh_token}'
흠 복잡하네요 ㅠㅠ
rest api를 보니 로그인을 시도하게 되면 카카오톡서버측으로 access token을 요청하고 access token을 return 해주던데
이거에대한 갱신은 rest api에 나온것처럼 6시간인가요??
그럼 앱에선 로그인할때마다 refresh token을 이용하여 access token을 생성하면되는건가요??
@image5956 살짝 헤깔려요. 반대로 저는 이해를 했는데요,
앱에서 SDK를 사용하여 로그인을 하고, access token/refresh token을 받으신 상황으로 이해했어요. 이 토큰을 REST API와 동일하게 사용하고 싶으신걸로 이해를 해서, 즉 앱에서 refresh token을 가지고 있고, (보통 서버단)REST API를 통하여 REST API용 access token을 받는다고 이해했었어요.
넵. REST API용 access token의 경우 약 6시간이에요.
(제가 맞게 이해를 하고 있나 자신이 없네요 ㅠㅜ)
흠 맞으신것 같은데요
제 말도 앱에서 sdk를 이용해서 refresh token으로 위에 알려주신 방법으로 rest api용 access token을 요청하고 그 access token을 이용하여 사용자 정보를 요청하면 되는거 아닌가 라고 말씀드린거라
방법은 제대로 맞게 알려주신것 같습니다
감사합니다 ㅠㅠ
우선 해봐야겠습니다 ㅎㅎ