마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[페이스북] 안드로이드, 서버 로그인 연동

0 추천
안녕하세요.

안드로이드 앱에서 페이스북에 퍼미션(email)을 요청하여 이메일을 받아오는것까지 성공하였는데요,,

안드로이드 앱에서 웹서버랑 연동하여 로그인 기능을 완성하려고 하거든요.

첨엔 이메일을 받아와서 그걸로 로그인(가입되어있지 않으면 가입부터)하는거라고 단순하게 생각했는데,,

페이스북에서 받어온 어떠한 코드를 웹서버로 보내면 웹서버에서 그 코드를 읽어서 앱키?(시크릿키?)랑 같이

페이스북 서버에 보내어 리턴을 받는다고 하는군요..

그런데 어떠한 코드를 웹서버에 보내야 하는지 모르겠습니다.

참고로 AccessToken은 보안상 해커가 중간에 가로채기를 할수있기 때문에 안좋다고 하는데요.

AccessToken이 완제품이라면 그 AccessToken을 받아내기 이전의 반제품 상태인 code를 달라고 하시네요.

그런데 그 코드 이름이 뭔지도 모르겠고... 검색능력이 부족한 탓인지 찾아봐도 안나옵니다...

어떤 코드를 보내야하나요?

감사합니다.
슈퍼꽃붕어 (1,600 포인트) 님이 2015년 3월 25일 질문

1개의 답변

+1 추천
 
채택된 답변
페이스북 sdk 를 사용하고 계신다면 AccessToken 관리는 잊어버리셔도 됩니다.

보통 기본적인 flow 는 다음과 같습니다.

user가 facebook login 버튼 누름 -> facebook login window 뜸 (웹뷰, 네이티브)

-> user가 facebook login 완료 -> 앱에 access token 과 facebook user member key 반환

-> 자체 서버에 member key 와 access token 정보 담아서 호출

-> 자체 서버에서 facebook.com/me?access_token={access_token}  이었던가

암튼 access token 으로 user 반환받는 api 가 있습니다. 그걸로 return 된 user 와

앱에서 받은 member key 일치하는지 확인

-> 회원가입 안되있으면 가입시키고 DB에 facebook_id 칼럼에 member key 저장

-> 회원가입 되어있으면 로그인 flow 진행

 

이런 식입니다.

참고하세용.
mamondebaltob (32,750 포인트) 님이 2015년 3월 25일 답변
슈퍼꽃붕어님이 2015년 3월 26일 채택됨
멤버키랑 액세스토큰을 서버로 보낸다는 뜻인가요? 보안상 안좋다며 code를 달라고 하셔서요...ㅠㅠ 그리고 , 멤버키는 어떤걸 말씀하시는지...userId말씀 하시는 건가요? 정확한 명칭을 알려주심 감사하겠습니당.
제가 알기로는 OAuth 에서 code 는 Facebook api 를 사용하는 client 앱
권한을 인증하는 용도로 사용하는 것으로 알고 있는데요
code 로 facebook 사용자를 확인할 수 있다구요?
member key 는 userId 가 맞습니다.
보안상 안좋으면 https 를 사용하면 될것이며
facebook api 를 통해서도 access token을 항상 주고받고 하는데
어떤 보안을 말하는지 모르겠네요 ㅋ
문서 찾아보니 AccessToken으로 주고받고 하는게 맞다고 하시네요... 감사합니닷ㅎㅎ
...