ios6 – iOS SDK似乎无法处理iOS 6中的撤销访问令牌

ios6 – iOS SDK似乎无法处理iOS 6中的撤销访问令牌,第1张

概述在我的应用程序获得访问在iOS 6的设置中注册的Facebook帐户后,我从我的facebook的隐私设置中撤消了该应用程序.然后我尝试通过调用[FBSession openActiveSessionWithReadPermissions …]重新连接我的应用程序,并且该方法使用旧的访问令牌创建facebook会话,该令牌已经是INVALID,而不再请求权限授予. 我认为这个问题与这个问题(Fac 在我的应用程序获得访问在iOS 6的设置中注册的Facebook帐户后,我从我的facebook的隐私设置中撤消了该应用程序.然后我尝试通过调用[FBSession openActiveSessionWithReadPermissions …]重新连接我的应用程序,并且该方法使用旧的访问令牌创建facebook会话,该令牌已经是INVALID,而不再请求权限授予.

我认为这个问题与这个问题(Facebook SDK 3.1 – Error validating access token)有关,据说它在SDK 3.1.1中得到修复.

但是,我正在使用SDK 3.1.1并通过在发生无效访问令牌错误时手动调用accountStore renewCredentialsForAccount事件来解决此问题.

解决方法 基于 this thread,我发现验证有效会话的唯一方法是执行简单的图形API调用.如果出现错误,FBSession.activeSession.isOpen将返回NO,这表示令牌已过期.

+ (voID) ValIDateSession{        FBRequest *userDetails = [[FBRequest alloc] initWithSession:FBSession.activeSession graPHPath:@"/me"];    [userDetails startWithCompletionHandler:^(FBRequestConnection *connection,NSDictionary *result,NSError *error) {        if (error) {            if (FBSession.activeSession.isOpen) {                // Less probable,so check error code.            } else {                // Bingo: here we kNow for sure that the token was useless.                // Expected behavior: reauthorize.            }        } else if (result) {            NSLog(@"%@",result);            // token is valID,continue        }    }];}

即使在删除应用程序后,iOS似乎仍保留Facebook令牌,因此在需要时再次确保令牌有效是一种很好的做法.

总结

以上是内存溢出为你收集整理的ios6 – iOS SDK似乎无法处理iOS 6中的撤销访问令牌全部内容,希望文章能够帮你解决ios6 – iOS SDK似乎无法处理iOS 6中的撤销访问令牌所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1053412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存