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



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

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

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

我在Android(而不是iOS)中面临同样的问题,但我认为问题是相同的,因为在文档中是这样说的。

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

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

注意响应类型是AccountKitActivity.ResponseType.CODE

在文档中说:

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

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

我发现Xcode8/iOS 10模拟器和钥匙链保存/检索存在一些问题。见https://forums.developer.apple.com/thread/60617

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

你能测试这是否也发生在设备上吗?显然,如果你在应用程序中添加共享密钥链,这个问题就会消失,但这仍然是苹果的一个bug。

最新更新