objective-c - 将现有访问 token 迁移到 Facebook iOS SDK 3.0

标签 objective-c authentication migration access-token facebook-ios-sdk

我刚刚大修了我的代码库以使用新的 facebook-ios-sdk 3.0(来自以前的版本,2.x 或其他)。

一切都很好,直到我意识到我没有考虑已经授予应用程序权限/使用之前的 SDK 实现登录的用户。所以我尝试检查 accessToken 是否保存在 NSUserDefaults 中,如果是,则调用以打开 session :

    if ([[NSUserDefaults standardUserDefaults] objectForKey:@"FBAccessTokenKey"] &&
        [[NSUserDefaults standardUserDefaults] objectForKey:@"FBExpirationDateKey"]) {
        [FBSession openActiveSessionWithPermissions:permissions
                                       allowLoginUI:allowLoginUI
                                   completionHandler:^(FBSession *session,
                                                       FBSessionState status,
                                                       NSError *error) {
         // deal with state change
         }

我的假设是用户不必为 SSO 快速切换应用程序,因为他们已经这样做了。然而,事实确实如此。

我不希望每个现有用户在升级时都需要重新登录。

有没有人不用重新登录就成功升级了?

谢谢

最佳答案

我已经使用 facebook SDK 3.0 升级了一个应用程序,它工作得很好。 Facebook SDK 自行处理 token ,但您仍然可以访问 accessToken。

你可以像这样随时到达它:

NSString *accessToken = [FBSession activeSession].accessToken;

如果没有设置 token ,这将返回 accessToken 或 nil。您甚至可以在 session 中定义 token 缓存规则集。享受吧。

关于objective-c - 将现有访问 token 迁移到 Facebook iOS SDK 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380410/

相关文章:

Objective-C 字符串操作

ruby-on-rails - 闲置/闲置后自动注销

MySQL:将一个表的部分内容迁移到另一个结构不同的表中

c# - 创建迁移文件时如何为列分配不同的默认值

objective-c - 以编程方式将菜单+项目添加到 NSPopupButton

iphone - UIButton的边界和框架

objective-c - 将数组从一个 View 添加到另一个 View 并保留值

asp.net - Windows 身份验证仅限于特定域

Python Django Rest 框架身份验证

java - Flyway 数据库迁移到多个模式