iphone - iOS SDK 在后台和 session 中注销

标签 iphone objective-c ios facebook authentication

我有一个应用程序,可以在其中向 Facebook 提交数据,登录一切正常,成功登录后将用户凭据存储在用户默认值中。

我遇到的问题是,似乎无法检测用户何时退出 Facebook 应用程序或使用 Mobile Safari。这意味着我的应用程序在其生命周期内仅与一位用户绑定(bind)。

我不想在我的应用程序中放置“注销”按钮,如果我有一个,那么我可以轻松调用注销方法并删除用户凭据,这意味着新用户可以使用我的应用程序进行身份验证,但这不可能.

有谁知道我可以检查用户是否登录以及如果登录则获取他们的 Facebook ID 的方法吗?这样,如果没有人登录或登录用户的凭据与保存的凭据不匹配,我可以再次强制授权。

谢谢

最佳答案

我认为这里的问题和困惑在于 FB 实现了“单点登录 (SS-On)”,但没有实现“单点登录 (SS-Out)”。

SS-On 的工作方式是,如果您之前登录过您的应用程序,则 token 将存储在您的应用程序中。这意味着即使您已经注销了 FB 应用程序,并且随后可能以其他用户身份登录,只要您的应用程序仍然拥有之前用户的 token ,您仍然可以访问之前的用户数据。

您可以做的是当应用程序进入后台时 closeSessionAndClearToken 。这可能是也可能不是您想要的行为。请注意,这意味着您的应用程序的所有内容都会从后台从事件状态恢复,每​​次都需要重新执行 SS-On 的整个练习。

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

关于iphone - iOS SDK 在后台和 session 中注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521011/

相关文章:

ios - CoreData IOS中如何正确获取ObjectId?

iPhone - URL 表的最佳方法?

ios - iOS 中的 Model View Controller 示例

ios - 如何在 iOS 中使用 Swift 正确检索加速度计数据?

ios - 点击自定义注释并执行相应的功能

ios - Phonegap构建错误-新应用必须使用XCode 5.1.1构建

ios - NSLocalizedString 总是返回大写的文本

ios - 快速获取字典中数组的值

iphone - UIActivityController 在 Facebook 上发布

iphone - iPhone Chrome 上的 ICS 文件下载失败,错误代码为 "Unknown File Type"