2012-11-23 4 views
0

이 페이지에서 자세히 설명 된 Facebook 용 서버 측 인증을 사용하고 있습니다.부분 승인이있는 Facebook 서버 측 인증

https://developers.facebook.com/docs/howtos/login/server-side-login/#step5

나는 user_birthday 같은 확장 된 권한을 요구하고있어 사용자가 수락하면 내가 코드를

YOUR_REDIRECT_URI? 
state=YOUR_STATE_VALUE 
&code=CODE_GENERATED_BY_FACEBOOK 

를 얻을 그러나 사용자가 생일을 제공하는 것을 거절의 말을 해주면, 난 여전히 원하는 이 URL을 얻을 때 진행하십시오.

YOUR_REDIRECT_URI? 
error_reason=user_denied 
&error=access_denied 
&error_description=The+user+denied+your+request. 
&state=YOUR_STATE_VALUE 

누구든지 해당 시나리오에서 코드를 얻는 방법을 알고 있거나 사용자에게 로그인을 요청해야합니까? 하지만 이번에는 추가 사용 권한을 요청하지 않습니까?

건배, 스티브

답변

0

사람이 그 시나리오에 따라 코드를 얻거나 내가 다시 로그인 절차하도록 사용자에게 요청해야하지만, 이번에는 추가 권한을 요구하지 않는 방법을 알고 있나요?

  • 당신은 처음으로 앱에 연결하는 사용자를 요청하고 있습니다 :

여기에 두 가지 시나리오가 있습니다. 이 시점에서 사용자는 user_birthday 권한을 거부 할 수 없습니다 (기본 권한이고 확장 권한이 아니기 때문에). 앱에 연결하거나 액세스하지 않습니다.

  • 사용자가 이전에 앱에 연결했으며 지금은 user_birthday 권한을 요청하고 있습니다. 사용자가 거부하면 error_reason=user_denied으로 이어지고 code 매개 변수는 표시되지 않습니다. 이미 토큰 전에 액세스를 입수하지 않는 한 - 두 번째 시나리오에서

  • 은 (아마도 권한의 축소 세트) 사용자를 다시 요청, 서버 측 플로우를 사용할 때하면 갈 수있는 유일한 방법입니다. 그것은 무효화되지 않을 것입니다 -하지만 그것은 이미 이전에 이미 주어진 권한만을 포함합니다.

    (사용자가 이전에 앱에 연결된 경우 범위 매개 변수없이 인증 대화 상자를 호출 할 수 있습니다.이 경우 페이스 북은 코드 매개 변수를 사용하여 앱으로 바로 리디렉션됩니다.

    +0

    사용자는 프로필에서 사용자 생일을 제한 할 수 있습니다. 예를 들어, FB.getLoginStatus를 호출하여 클라이언트 쪽을 미리 지정할 수 있습니다. 어떤 경우에도 사용자가 허용을 클릭해도 서버에 여전히 user_denied가 표시됩니다. – stevew