2012-04-14 3 views
2

제 3 자에게 페이스 북 API를 사용하여 서비스를 제공하고 싶습니다. 액세스 토큰을 공유 할 수 있습니까? 제 3자가 내 서비스에 사용자 액세스 토큰을 제공하면 내 app_id & 비밀번호가 요청한 앱과 일치하지 않아도 해당 사용자 데이터에 액세스 할 수 있습니까?앱 전체에서 Facebook 액세스 토큰 공유하기

다른 제 3자를 위해 사용자가 이미 완료 한 경우에도 내 사이트에서 별도의 oauth 플로우를 수행해야합니까?

감사합니다.

-Ken

답변

3

:

그것은 우리가 액세스 토큰을 공유 할 수 있습니까?

하고, 나는

에 액세스 할 수 사용자 데이터도이를 요청한 응용 프로그램을 일치하지 않는 내 APP_ID & 비밀 경우?

대답은 No입니다. 사양 OAuth2 section 10.3에서 :

액세스 토큰 자격 증명 (뿐만 아니라 기밀 액세스 토큰 속성) 운송 및 저장에 기밀로 유지되어야하며, 단지 인증 서버간에 공유 리소스 서버 액세스 토큰은 유효한 액세스 토큰이있는 클라이언트 및 액세스 토큰이 발급 된 클라이언트입니다.


나는 이미 다른 제 3자가이를 완료 한 경우에도 사용자가 내 사이트에 별도의 OAuth 흐름을 통과해야합니까?

대답은 Yes입니다. 페이스 북을 승인 서버로 사용하면서 oauth 플로우를 다시 시작하면 사용자는 다른 앱 (제 3 자) 만 승인하면됩니다.

+5

앱과 함께 작동하는 웹 사이트 (Twitter 및 Twitter 앱)를 사용한다면 어떨까요? 트위터가 타사 (예 : Google)와의 인증에 OAuth2를 사용하려면 앱과 웹 사이트를 따로 인증해야합니까? 사용자에게 매우 서투른 경험이 아닐 수 있습니다. – Timmmm

+0

스펙의 인용문을 "예, 가능합니다"로 해석 하겠지만, 보안을 위반할 수 있으므로 "아니오,하지 말아야합니다"라고 해석합니다. 토큰을 공유하는 것이 불가능한 경우 토큰을 안전하게 보관할 필요가 없습니다. – JRI

2

는 각 액세스 토큰은 하나 개의 앱 발행 - 그것은 다른 응용 프로그램 ID를 사용할 수 없습니다. 에 관한

8

사용자 액세스 토큰이 하나의 앱에만 발행되는 경우에도 다른 애플리케이션에서 쉽게 사용할 수 있습니다.

예 :

  1. 여기 https://developers.facebook.com/tools/explorer/?method=GET&path=me "그래프 API 탐색기"응용 프로그램에 대한 액세스 토큰을 얻고 요청을 - 당신은 당신의 데이터를 볼 수 있습니다.
  2. 액세스 토큰을 복사하고 다른 컴퓨터의 브라우저를 열고 https://graph.facebook.com/me?access_token=[access_token]로 이동하십시오. 여전히 Facebook 사용자에 대한 정보를 검색 할 수 있습니다!

여기 https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/

우리의 데이터 정책을 명시 적으로 다른 앱 앱 액세스 토큰의 공유를 금지 언급했다. 그러나 개발자는 HTTPS를 사용하여 전송이 이루어지는 한 동일한 구현의 응용 프로그램과 동일한 응용 프로그램의 서버 구현 (즉, 동일한 응용 프로그램 ID 사용)간에 토큰을 공유 할 수 있습니다.

+0

FB 데이터 정책에서 발췌 한 내용에 따르면 네이티브 앱과 백엔드 앱간에 토큰을 공유 할 수 있어야하며, 둘 다 FB oauth API에 대한 독점적 인 자격 증명 액세스 권한을 공유하기 때문에 가능합니다. . 물론, 영업 사원은 실제로 이것을 요구하지 않았습니다. – kingdango

+0

@kingdango, 두 응용 프로그램은 "FB oauth API에 대한 독점적 인 자격 증명 액세스 권한을 공유 할 필요가 없습니다." FB "그래프 API 탐색기"응용 프로그램에서 액세스 토큰을 검색하여 자신의 응용 프로그램에서 사용할 수 있습니다. –