Ios, android 네이티브앱에서 카카오 로그인 후 사용자 정보를 서버에 보내려고 합니다

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


안녕하세요.
ios, android에서 sdk를 이용해 소셜로그인을 하려고 하는데요. 로그인의 모든 것을 sdk에 일임하고 사용자 정보를 얻은 후 카카오 키와 사용자 정보를 db에 저장하려고 합니다. 그러기 위해서는 api 서버에 정보를 보내야 하는데 이 때 어떤 인증 처리도 없다면 어떤 사용자가 아무값이나 넣어서 요청하면 회원가입 또는 로그인이 될 거 같아서요.
해당 api를 호출할 때 올바른 사용자인지 체크하고(생각해봤을 때 앱에서 암호화해서 서버에서 복호화하는 방식이 맞을지,) 올바른 사용자면, 후에 로직을(카카오 키값이 존재하면 로그인, 아니면 회원가입) 진행하고 싶습니다. 로그인이나 회원가입 후에는 사용자 정보 기반으로 jwt 토큰을 만들어 앱에 넘겨주고 이후 앱과 서버 통신 때 토큰을 헤더에 받을 생각입니다.
제가 웹 쪽만 하다보니 이렇게 하는 방식이 옳은지 모르겠습니다. 대체로 어떤 방식으로 통신하나요?

안녕하세요.

카카오 로그인 후, 사용자 정보가져오기 시 전달되는 회원번호(id)를 전달하여 서비스에 연결된 카카오 계정인지 확인하시면 좋을것 같습니다.

서비스측 백엔드에서는 전달된 회원번호(id)로 서비스 연결여부를 확인할 수 있고, 서비스측 회원DB에 있는지도 판단 가능하실 것으로 보입니다.

답변 감사합니다! 하나만 더 여쭤보겠습니당…ㅜ
궁금한 점은 id 값으로만 판별하면 임의의 사용자가 아무 회원번호(난수 막 만들어가지고)를 입력하고 api를 요청했는데, 회원 DB에 있는 사람이라면(카카오 id 값을 찾았는데 만약 존재한다면) 로그인 처리가 되는데, 요청자가 신뢰할만한 사람이라는거를 알만한 과정이 더 필요하지 않을까 싶어서요. 대부분 이럴 일은 없는 걸까요?

서비스측 로그인 API에서 유효한 디바이스에서의 요청인지 판단하실 필요가 있습니다.

웹의 경우 접근토큰을 백엔드 redirect_uri에서 발급 받으시면 되기에 문의하신바와 같은 본안 문제는 발생하지 않겠지만, 앱의 경우 별도 보안처리가 필요 합니다.

앱에서 별다른 보안처리가 존재하지 않는 경우 접근토큰ID토큰 만을 서비스로 전달하여 이를 대신할 수도 있습니다. ID토큰은 카카오톡에서 사용자 인증후 발급 되기에 전달된 토큰으로 검증 및 사용자 정보를 조회하시고 필요하신 회원가입 및 인가처리를 하실 수 있습니다.

1개의 좋아요

감사합니다! 그러나 접근 토큰을 넘긴다는 부분이 이해가 되지 않습니다ㅠ
Ios와 서버를 연동해서 카카오 로그인을 진행하려고 합니다 에서는 access token을 넘기는 것은 위험하다고 해서 sdk에서 사용자 정보까지 다 조회하고 넘기려고 하다보니 또 로그인 api에서 보안처리가 필요하다고 생각했습니다.
그냥 access token을 넘겨도 문제 없을까요??
많은 질문을 해서 죄송하네요…ㅜㅜ

안녕하세요.

접근 토큰을 전달하는 것 자체는 문제가 되지 않습니다.
다만, SSL 과 같은 기본적인 보안 처리가 된 서비스에서 전달 부탁드립니다.

접근 토큰을 전달하지 않고 서비스측에서 인가 처리 하시는 경우, 해당 요청이 유효한 요청인지 검증 하셔야 합니다.
자체적인 보안 방법이 존재한다면, 이를 사용하시면 되며, 키 해시나, 번들 ID만을 사용하여 검증 하신다면 보안에 취약할 수 있으니 접근토큰 ID토큰을 전달하여 검증 하시는게 좋습니다.

많은 도움이 되었습니다! 감사합니다!