iOS Facebook帐户套件 - 成功登录后第二次打开应用程序时保留用户令牌

时间:2016-10-25 16:27:08

标签: ios facebook facebook-graph-api account-kit

我怀疑是第一次使用Facebook帐户套件成功登录后,我第二次重新打开应用程序。当我打开如何检测和使用现有用户访问令牌?

我尝试在appdelegate中获取Accountkit.currentAccessToken作为显示登录页面或欢迎页面的条件。但currentAccessToken返回null。 我还在应用设置中启用了“启用客户端访问令牌流”。 请帮助理解我的方法是否正确。

 self.accountKit = AKFAccountKit (responseType: AKFResponseType.accessToken)
        if(self.accountKit.currentAccessToken != nil)
        {
            //SHOW WELCOME PAGE
        }else{
            //SHOW LOGIN PAGE
        }

2 个答案:

答案 0 :(得分:0)

我已经看到了Xcode8 / iOS 10模拟器和钥匙串保存/检索的一些问题。见https://forums.developer.apple.com/thread/60617

AccountKit将accessToken安全地存储在钥匙串中,但Xcode8 / iOS 10模拟器上存在间歇性错误,使得从钥匙串读取/写入失败。

您可以测试设备上是否也发生了这种情况吗? 显然,如果您将共享钥匙串权利添加到您的应用程序,问题就会消失,但这仍然是Apple的错误。

答案 1 :(得分:0)

我在Android中遇到了同样的问题(不是在iOS中),但我认为问题是一样的,因为在文档中说的是这样。

这是我使用电子邮件配置登录的代码(kotlin,使用let更改val)。

val configurationBuilder = AccountKitConfiguration.AccountKitConfigurationBuilder(
            LoginType.EMAIL,
            AccountKitActivity.ResponseType.CODE)

请注意,回复类型为AccountKitActivity.ResponseType.CODE

在文件中说:

  

如果您使用AccountKitActivity.ResponseType.TOKEN开始登录会话,则可以使用注销选项从设备中删除存储的AccessToken。

所以问题在于我使用的响应类型,需要更改为AccountKitActivity.ResponseType.TOKEN才能使令牌存储在设备上。