나는 새로운 FBSession의 reauthorisation에 대한 질문 (reauthorizeWithPermissions의 몇 가지 있습니다 : 페이스 북 SDK 3.0 completionHandler : : : 동작을페이스 북 아이폰 OS SDK 3.0 재 인증
누군가가, 내 응용 프로그램에 페이스 북을 통해 로그인하면특정 페이지 나는 그/그녀의 페이스 북의 자격 증명으로 사용자를 다시 인증하고 싶습니다. 이것은 페이지를보고있는 사람과 기록 된 사람이 같은지 확인하기위한 것입니다. 재승 인 권한은 로그인과 동일합니다. 이 경우 사용자 암호를 다시 확인하면됩니다.
따라서 저는 reauthorisationWithPermissions를 사용하고 있습니다. 그리고 나는 FBSessionLoginBehaviorForcingWebView로 동작을 설정하여 사용자가 자신의 자격 증명을 입력하도록합니다. 그러나 이것은 전혀 작동하지 않습니다. 몇 초 동안 빈 웹뷰가 나타나고 사라집니다.이 시점에서 FBSessionStateOpen으로 설정된 상태로 FBSesstionStateHandler 블록을 호출하지만 (completionHandler :) 내에 정의 된 FBSessionReauthorizeResultHandler를 호출하지 못합니다.
그러나 단순히 동작을 기본값 (FBSessionLoginBehaviorWithFallbackToWebView)으로 설정하면 페이스 북 앱/사파리간에 요청을 앞뒤로 전달하여 정상적으로 작동하고 completionHandler를 올바르게 호출하여 호출을 완료합니다. 그러나 기본 동작으로 사용자가 자신의 암호를 다시 입력하도록 강요하지는 않습니다.
그래서 저는 정말 혼란스럽고 웹상의 sdk 문서는 제 경우에는별로 유용하지 않습니다. 누군가 내가 잘못하고있는 것에 대해 조언 해 주시겠습니까? 아니면 SDK의 알려진 버그를 신고 해 주시겠습니까? 그렇다면 어떻게 요구 사항을 충족시킬 수 있습니까? REAUTH 웹보기가 제대로 나올 일단
-(void) reauthThroughFacebook {
if (!self.facebookSession.isOpen && self.facebookSession.state == FBSessionStateCreatedTokenLoaded) {
[self.facebookSession openWithBehavior: FBSessionLoginBehaviorWithNoFallbackToWebView
completionHandler: self.stateHandler];
}
if (self.facebookSession.isOpen) {
[self.facebookSession reauthorizeWithPermissions: self.userPermissions
behavior: FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session, NSError* error){
if (self.facebookSession == session) {
[self completedReauthWithSuccess:(error == nil) error:error];
}
}];
} else {
[self completedReauthWithSuccess:NO error:[NSError errorWithDomain: @"No active session found."
code: FBErrorInvalid userInfo: nil]];
}
}
또한, 어떻게 사용자의 이메일 주소가 자동으로 채워 그것을 변경 사용자 양식을 차단할 수 있는지 확인합니까? 페이스 북 SDK 내에서 웹보기에 액세스하여 이러한 속성을 설정할 수 있습니까?
마지막으로 로그인과 동일한 권한으로 재 인증이 수행되는 경우 액세스 토큰과 만료 날짜는 어떻게됩니까?
미리 감사드립니다.
나는 똑같은 것을 궁금해합니다. sdk 3.1에서는 reauthorizeWithPermissions : behavior : completionHandler : 메소드도 사용되지 않습니다. 나는 – Kevlar