2012-03-01 2 views
2

Facebook에 데이터를 제출하는 앱이 있습니다. 로그인이 성공하고 모든 것이 완벽하게 작동하며 로그인 성공시 사용자 기본값에 사용자 자격 증명을 저장합니다.iOS SDK 백그라운드 및 세션에서의 로그 아웃

내가 겪고있는 문제는 사용자가 Facebook 앱에서 로그 아웃하거나 모바일 Safari를 사용하여 로그 아웃 한 경우를 감지 할 수없는 것 같습니다. 즉, 내 앱은 평생 동안 한 명의 사용자에게만 묶여 있습니다.

내 앱에 '로그 아웃'버튼을 넣고 싶지 않다면 쉽게 로그 아웃 메소드를 호출하고 새로운 사용자가 내 앱으로 인증 할 수 있다는 것을 의미하는 사용자 자격 증명을 삭제할 수 있습니다. 가능성.

사용자가 로그인했는지 확인할 수있는 방법을 아는 사람이 있습니까? 이렇게하면 아무도 로그인하지 않았거나 로그인 한 사용자의 자격 증명과 저장된 자격 증명이 일치하지 않으면 인증을 다시 강제 실행할 수 있습니다.

감사

답변

1

내가 문제가 여기에 혼란이 FB는 "(SS-ON)에 단일 로그인"을 구현했다고 생각 사용할 수 있지만 "단일 로그인 아웃 (SS -아웃)".

SS-On의 작동 방식은 이전에 앱에 로그인 한 상태에서 앱에 토큰을 저장하는 것입니다. 즉, FB 앱에서 로그 아웃 한 다음 다른 사용자로 로그인 한 경우에도 앱에 이전 사용자의 토큰이 남아있는 경우 이전 사용자 데이터에 계속 액세스 할 수 있습니다.

백그라운드로 이동할 때 앱에서 closeSessionAndClearToken을 할 수 있습니다. 이것은 당신에게 바라는 행동 일 수도 아닐 수도 있습니다. 이것은 앱이 배경에서 활성화 된 모든 것을 다시 시작한다는 것을 의미하므로 SS-On의 전체 드릴을 매번 반복해야합니다.

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [FBSession.activeSession closeSessionAndClearToken]; 
} 
1

당신은

if([facebook isSessionValid]) 
{ 
    // 1. Either the user has logged out 
    // 2. Or the user has changed the password 
} 
+0

사용자가 앱을 백그라운드에 놓고 페이스 북 앱을 사용하여 로그 아웃 한 다음 내 앱으로 돌아 가면 isSessionValid가 true를 반환합니다. 또한 이것은 사용자가 로그 아웃 한 다음 새로운 사용자가 백그라운드에서 로그인 할 가능성을 다루지 않습니다. – x0b

+0

Facebook 앱에 로그인하고 '내 앱'에 유효한 로그인 정보가 두 가지 있습니다. – vipinagg

+0

싱글 사인온의 요점은 로그인 상태가 그것을 사용하는 모든 앱에서 공유된다는 것입니다. http://www.facebook.com/pages/Single-sign-on/108568432501463 – x0b