2011-03-02 4 views
0

내가 원하는 동작은 간단하다 :Facebook을 사용하여 내 모바일 애플리케이션 및 기본 서버를 인증하려면 어떻게해야합니까?

  1. 사용자가 응용 프로그램을 시작합니다.
  2. 사용자가 Facebook 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다.
  3. 로그인에 성공하면 이제 사용자는 응용 프로그램과 웹 서버에 대해 인증됩니다. 이제 Facebook ID와 연결된 사용자가 서버에 있습니다. 모든 추가 HTTP 요청에는 웹 서버에서 인증 된 쿠키가 있습니다.

내가 알 수있는 한이 동작에는 몇 가지 문제가 있습니다.

페이스 북

당신은 서비스 약관에 따라, 프로그래밍 로그인 할 수 없습니다; Facebook 웹 사이트 또는 SDK를 통해 서명해야합니다. 둘 다 대화식입니다. 따라서, 내 양식을 만들고, 웹 서버에 사용자 이름과 암호를 전달하고, 거기에 로그인하고 성공적인 쿠키 세트로 응답 할 수 없습니다. 사용자가 응용 프로그램을 통해 로그인 할 경우

보안

는, 그들은 응용 프로그램으로 만 인증됩니다. 페이스 북 ID를 웹 서버에 전달할 수는 있지만 사용자의 FB ID를 찾는 것이 얼마나 쉬운지를 고려하면 서버를 스푸핑하는 것은 매우 쉽습니다. 응용 프로그램에서 암호를 자동 생성하는 것으로 생각했지만 스푸핑을위한 창만 줄이고 구멍을 완전히 닫지는 않습니다.

(보안 실제로 내 프로젝트에 대한 큰 문제가되지 않습니다,하지만 난 그런 뻔한 구멍을 떠나고 싶어하지 않습니다.)


내 기술은 모바일 애플리케이션과 구글 3.0 이상 아이폰 OS입니다 Django의 수정 된 버전을 실행하는 서버용 App Engine.

  1. 사용자가 응용 프로그램을 시작 다음과 같이 내가 제한 주위에 작품을 생각

    나는 밖으로 작업 한이 솔루션은입니다.

  2. 응용 프로그램은 현재 설정된 쿠키가 서버에서 인증되었는지 여부를 확인합니다.
  3. 그렇지 않은 경우 Safari에서 URL 구성표를 통해 웹 서버의 실제 페이지로 이동하여 Facebook (또는 나중에 추가 할 다른 인증 시스템)을 통해 로그인 할 수있는 옵션을 엽니 다.
  4. 사용자 인증 및 서버는 Facebook ID와 연결된 사용자 (필요한 경우)를 만듭니다.
  5. 성공적으로 로그인 한 서버는 쿠키 ID를 매개 변수로 사용하여 모바일 애플리케이션 URL 스키마를 호출하는 페이지로 리디렉션합니다.
  6. 성공?

내 질문 : 나는 옳은 일을하고 있습니까? 내 가정이 틀렸어?

+0

저는 현재 매우 비슷한 작업을하고 있습니다.내가 궁금해하는 유일한 점은 사용자 상호 작용없이 사파리로 앱을 튀게하는 것이 애플에 의해 거부 될 수 있다는 것이다. "로그인 ..."버튼이 있습니다. 또한 로그인을 위해 Facebook iOS SDK를 사용할 수없는 이유가 있습니까? – Calvin

+0

바운스는 iOS 4+에서 Facebook iOS SDK가 실제로하는 바운스입니다. 그러나 응용 프로그램 만 인증합니다. 그것으로부터 페이스 북 ID와 액세스 토큰을 얻습니다. 그러나 웹 서버는 이걸 보지 않아서 앱이 대화 할 때 여전히 익명의 사용자를 볼 수 있습니다. –

답변

-1

OAuth 프레임 워크를 사용해 볼 수 있습니다.

관련 문제