iOS - Facebook登录检查登录状态

时间:2014-12-22 18:51:43

标签: ios facebook-login facebook-ios-sdk

我正试图为我的应用实施Facebook登录。我有它工作,如果应用程序打开登录视图控制器(使用FBLoginView),那么用户可以登录,我收到委托方法-loginViewShowingLoggedOutUser:- (void)loginViewShowingLoggedInUser:

我想创建一个更流畅的UI来打开应用程序。除非用户需要登录,否则我不希望每次开始都显示FBLoginView。我正在做的事情是最初打开一个只显示launchImage的viewController然后检查用户的登录状态。如果用户已经登录,则它会转到应用程序的主要部分;否则,它会转到登录视图控制器。问题是,除了FBLoginView的委托方法之外,我似乎无法找到检查登录状态的方法。我看到FB javascript SDK有一个方法FB.getLoginStatus()。 iOS有什么类似的东西吗?

1 个答案:

答案 0 :(得分:3)

FBLoginView在FBSession.activeSession中维护会话,一旦用户登录一次,它还会在KeyChain中缓存凭据。所以你能做的是:

[FBSession openActiveSessionWithAllowLoginUI:NO];
if ([[FBSession activeSession] isOpen]) {
  // do regular stuff
} else {
  // segue to loginView
}

这将尝试在没有任何用户交互(即来自缓存的令牌)的情况下创建打开的会话。如果会话已打开,那么您可以保留在当前的viewController中,否则将转到loginView。

请参阅https://developers.facebook.com/docs/reference/ios/current/class/FBSession/#openActiveSessionWithAllowLoginUI