2012-06-06 3 views
2

저는 개발중인 몇 가지 응용 프로그램에 대해 최고의 아키텍처를 찾으려고합니다.iOS/Node 응용 프로그램에서 google/twitter/linkedIn 인증 사용

두 앱에서 사용자 신원 인증을 제공하기 위해 google/twitter/LinkedIn/등을 사용하고 싶습니다. 응용 프로그램은 node.js에 쓰고있는 서버에 데이터를 보낼 수있는 옵션이있는 iOS 앱으로 구성되어 있습니다.

OAuth 또는 OpenId를 사용하여 위의 서버에 대해 사용자를 식별하여 자체 인증 시스템을 사용할 필요가 없도록하고 싶습니다. 즉, 사용자가 데이터 업로드를 선택할 때 해당 ID를 다시 사용할 수 있도록 허용합니다.

사용자를 식별하고 이름과 이메일 주소를 얻는 것을 제외하고는 현재이 API를 사용할 의사가 없습니다.

  1. 장소 인증 코드 아이폰 OS 클라이언트와 그 다음 확인할 수있는 데이터와 서버에 어떤 다른 종류의 키를 전송 :

    가 나는 두 가지 옵션이 있습니다 생각합니다.

  2. iOS 클라이언트를 상당히 바보 취급하고 노드 서버의 승인을 처리하십시오. 그것이 내가 인증을 중앙에서뿐만 아니라 웹 사이트를 지원할 수 있었다 의미하기 때문에

는 아마 두 번째 옵션을 선호하는 것입니다. 그것이 나의 현재의 이론입니다.

이런 식으로 뭔가 해본 사람이라면 누구든지 장단점, OAuth 또는 OpenId 또는 몇 가지 예에 대한 링크를 제공 할 수 있습니까?

+0

관련 게시물 : [iOS 링크 된 인증] (http://stackoverflow.com/questions/28491280). – Mogsdad

답변

2

이전 앱에서는 두 가지 방법을 함께 사용하기로 결정했습니다. 이러한 서비스에서 향후 API 호출을해야 할 경우 서버에 사용자 데이터를 중앙 집중화하려고했습니다. 우리는 또한 클라이언트에서 사용자를 위해 기본 oAuth 환경을 원했습니다. 즉, Android 및 iOS에서 개발자는 기본 Facebook 앱 (사용 가능한 경우)을 통해 단일 로그온/승인을 실행할 수 있으며 '승인'대화 상자를 제공하는 웹보기를 팝업 할 수 있습니다. 그것은 내 의견으로는 더 나은 사용자 경험입니다. 또한 트위터의 경우 oAuth 프로세스는 클라이언트 측에서 처리해야하는 콜백에 PIN 코드를 입력해야 할 수도 있습니다.

클라이언트가 검색 한 액세스 토큰을 서버에 저장하여 나중에 사용할 수 있습니다 (토큰이 오래 지속될 것으로 예상되는 경우).이 서비스에서 추가 API 호출을하려는 경우 (예 : 오프라인 액세스 FB에 대한 허가).

어쨌든 이것은 주로 사용자 경험 결정입니다.

+0

올바르게 이해하면 클라이언트에서 OAuth 코드를 구현하여 기기에서 인증 할 수 있습니다. 그런 다음 토큰을 iOS 클라이언트에 저장하고이를 저장 용 서버로 보낼 수 있습니다. 다음에 iOS 클라이언트가 시작되면 서버에 토큰을 보내고 이전에 저장된 토큰과 비교합니다. 일치는 서버가 현재 상대방을 알고 있음을 의미합니다. – drekka

+1

그럴 수 있습니다. 세션간에 변경되지 않도록 보장되는 항목에 대한 비교를 실행하는 것이 안전 할 수도 있습니다. 즉 : 해당 시스템의 사용자 ID 또는 고유 한 핸들. auth가 클라이언트 측에서 성공할 경우에만 정보를 얻을 수 있기 때문에 서버에 서비스 이름과 ID를 보내면 서버가 관련 사용자 계정을 조회 할 수 있습니다. 그러면 여러 서비스로 인증 될 수 있습니다. –

+0

안녕하세요, @WesJohnson 나는 같은 문제가 발생하지만, 어떤 대답을 찾지 못했습니다 : http://stackoverflow.com/questions/26781660/sdks-for-getting-auth-token-for-posting- on-facebook-twitter-linked-in-then – abdulrauf618

관련 문제