2011-05-12 6 views
7

안녕하세요. 안드로이드 폰에서 안드로이드 용 페이스 북 SDK를 사용하고 싱글 사인온을 사용하고 있습니다. 내 페이스 북 응용 프로그램에 로그인 할 때 내 응용 프로그램도 로그인 한 상태로 잘 작동합니다. 로그 아웃하는 동안 혼란이있었습니다.Android : facebook sdk 로그 아웃 문제가 있습니까?

구현 방법은 응용 프로그램의 사용자 기본 설정에서 액세스 토큰과 만료 날짜를 복원하고 세션의 유효성을 확인하는 것입니다. 응용 프로그램이 만료되면 facebook.authorized 함수를 호출하고 액세스 토큰을 승인하면 만료 날짜가 다시 업데이트됩니다.

로그 아웃을 처리 할 때 약간의 혼란이 있습니다.

1) 페이스 북 응용 프로그램에서 로그 아웃 할 때 내 응용 프로그램이 여전히 작동하여 사용자 세부 사항을 요청할 수 있습니다. 내 응용 프로그램의 저장된 액세스 토큰은 페이스 북 응용 프로그램과 관계가 없지만 적어도 데이터를 요청할 때 오류가 발생한다고 생각했습니다. 그러나 그것은 나에게 오류를주지 않았다.

그런 식으로 행동하고 있다고 생각하십니까? Facebook 앱에서 로그 아웃해도 내 애플리케이션에 저장된 액세스 토큰에는 영향을주지 않습니다.

2) 내 응용 프로그램에서 로그 아웃했을 때 페이스 북 응용 프로그램이 아닌 로그 아웃하면 페이스 북 응용 프로그램이 자동으로 로그 아웃되지 않습니다.

답변

9

Facebook 액세스 토큰과 앱 액세스 토큰은 별개이며 별개이므로 타사가 유효하지 않고 재 승인이 필요할 때만 유효하고 액세스가 가능할 수 있습니다.

Facebook 앱이 로그인되어 있지만 앱이 아닌 경우 Facebook SDK는 기존 Facebook 앱 로그인을 사용하여 인증하지 않고 앱에 대한 새로운 액세스 토큰을 얻지 만 Facebook 앱에는 아직 연결되어 있지 않습니다 어떤 식 으로든 로그인 토큰.

Facebook 앱이 설치되어 있지 않거나 로그인하지 않은 경우 Facebook SDK가 Facebook 웹 사이트로 이동하여 초기 인증을 수행하지만 Facebook 앱은 로그인하지 않습니다. 액세스 토큰 및 Facebook 액세스 토큰.

요약하면, 이해가 정확합니다. 앱이 사용자 인증을 시도 할 때를 제외하고는 두 앱간에 아무런 상호 작용이 없습니다. 그러면 Facebook 앱이 프록시로 작동하여 Facebook이 로그인되어있는 동안 인증하지 않고도 액세스 할 수있게됩니다. 그 후에는 더 이상 상호 작용과 당신이 관찰 한 것은 예상되고 의도 된 행동입니다.

+0

사용자가 [내] 애플리케이션에 대한 액세스 권한을 부여하면 [공식] 페이스 북 애플리케이션에 로그인하면 항상 인증됩니다. [my] 어플리케이션에서 facebook.logout (컨텍스트)를 호출하려고해도? 미안하지만, 조금 혼란 스럽네. – harsimranb

+0

예 - 앱에 Facebook 계정에 대한 액세스 권한이 있고 Facebook API를 사용하고 공식 Facebook 앱이 계속 로그인되어있는 경우 다음에 앱을 시작할 때 Facebook 앱을 사용하여 새로운 액세스 토큰을 보내고 자동으로 인증됩니다. 이것이 싱글 사인온 (single-sign-on)이 작동하는 방식입니다. – RivieraKid

+0

따라서 facebook.isSessionValid()는 사용자가 실제로 로그온했는지 확인하는 올바른 방법입니까? facebook.isSessionValid()는 사용자가 로그인 한 경우에도 true를 반환하기 때문에 – harsimranb

0

동일한 문제가 있습니다. 나는 "isLogged"var을 만들고 누군가가 로그 아웃하고 응용 프로그램을 재시작 할 때 사용자가 페이스 북의 세션 확인을 거치지 않고 로그온했는지 여부를 확인할 수 있도록 저장할 생각이다.

관련 문제