2013-10-25 3 views
2

내 백엔드 서버에서 제공하는 일부 웹 서비스를 활용하는 기본 iOS 앱을 개발 중입니다. 일부 서비스는 사용자의 인증이 필요하며 요구 사항은 페이스 북이나 트위터를 사용하여 서버에서 직접 생성 한 사용자 계정으로 인증을 수행한다는 것입니다.iOS 네이티브 WebView에서 페이스 북으로 서버 측 로그인

단순화하기 위해 백엔드 서버 작성자는 서버가 FB 또는 Twitter로 서버 측 인증을 수행 할 것을 결정했습니다 (물론 사용자가 직접 로그인하도록 선택한 경우 자체 인증 메커니즘을 사용합니다). 서버에있는 계정), 인증이 성공한 후 서버의 자체 액세스 토큰을 리턴합니다.이 토큰은 뒤 따르는 플로우 (FB/Twitter/own)와는 별도로 제공됩니다. 나는 로그인 페이지의 URL과 네이티브 iOS 앱에서 웹보기를 열

  • : 같은

    그래서 인증의 전류 흐름이 보인다. 페이지에는 "FB로 로그인"및 "트위터로 로그인"버튼과 직접 인증을위한 작은 사용자/패스 양식이 있습니다.

  • 사용자가 "FB로 로그인"을 선택하면 서버가 FB보기의 인증 페이지로 웹보기를 리디렉션합니다. 사용자는 FB 자격 증명을 입력해야합니다. 트위터에서도 마찬가지입니다.
  • FB/Twitter 리디렉션 URL은 서버에 직접 설정되므로 FB/Twitter에서 사용자를 성공적으로 인증 한 후 서버에 액세스 토큰을 보냅니다. 서버는 새로운 사용자 세션을 생성하고 자체 액세스 토큰을 생성하여 기본 응용 프로그램의 리디렉션 URL로 보냅니다.
  • 사용자가 양식에 직접 서버 인증 정보를 입력하면 서버는 사용자 세션 및 인증 토큰을 작성하여이를 리디렉션 URL로 전송합니다.
  • 네이티브 앱이 해당 대리인을 통해 웹보기를 관찰하고 사전 정의 된 리디렉션 URL (예 : http://myserver.com/authentication_success/?authToken=xyz)을 찾습니다. shouldStartLoadWithRequest에 전달 된 요청이이 패턴과 일치하면 authToken을 추출하고 웹보기를 닫습니다.
  • 인증 토큰은 사용자 인증이 필요한 각 서비스 요청에 전달됩니다.

내 질문은 :이 아키텍처가 유효하며 Apple에서 인정할 예정입니까? 내 관심사는 특정 지점에서 사용자가 내 웹보기에서 Facebook 자격 증명을 입력하라는 요청을 받았기 때문에 이론적으로 대리인을 통해 FB 암호에 액세스 할 수 있다는 것입니다. 앱을 거부하는 이유가 될 수 있습니까?

"전체 서버 측 코드를 사용하는 로그인 흐름"에 브라우저 기반 로그인을 사용하려는이 문서의 내용은 https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/입니다. 이 사건에 내 사건을 적용 할 수 있습니까?

+0

유사/중복 질문 : http://stackoverflow.com/questions/4623974/design-for-facebook-authentication-in-an-ios-app-that-also-accesses-a-secured-we –

답변

0

이 질문에 대한 후속 조치 : 위의 fb-login 아키텍처를 사용하여 앱 스토어에 앱을 제출했는데이를 수락하고 게시했습니다.

+0

안녕하세요 @ MrTJ, 입양 된 솔루션을 설명하기 위해 튜토리얼을 만들었습니까? 감사! –

관련 문제