将现有访问令牌迁移到Facebook iOS SDK 3.0

Sah*_*hil 6 migration authentication objective-c access-token facebook-ios-sdk

我刚刚彻底检查了我的代码库以使用新的facebook-ios-sdk 3.0(来自之前的版本,2.x或whatnot).

一切都运行良好,直到我意识到我没有考虑已经授予应用程序权限/使用之前的SDK实现登录的用户.所以我尝试检查是否在NSUserDefaults中保存了accessToken,如果是,请拨打电话打开会话:

    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
         }
Run Code Online (Sandbox Code Playgroud)

我的假设是用户不必为SSO快速切换应用程序,因为他们已经有了.然而,确实会发生这种情况.

我宁愿不让每个现有用户在升级时都需要重新登录.

有没有人成功升级而无需重新登录?

谢谢

Nil*_*nch 2

我已经使用 facebook SDK 3.0 升级了一个应用程序,它运行得很好。Facebook SDK 本身处理令牌,但您仍然可以访问 accessToken。

您可以随时访问它,如下所示:

NSString *accessToken = [FBSession activeSession].accessToken;
Run Code Online (Sandbox Code Playgroud)

如果没有设置令牌,这将返回 accessToken 或 nil。您甚至可以在会话上定义令牌缓存规则集。享受。