由于用户已更改密码,会话已失效

为Android和iOS实现PhoneGap应用程序,该应用程序使用Facebook Connect和PhoneGap Facebook Connect插件( https://github.com/davejohnson/phonegap-plugin-facebook-connect )。 几天前,我开始有access_token问题,但只有在Android上,同样的情况下在iOS上工作没有问题。 一步一步是:

  1. 初始脸书。 (使用插件function)
  2. login到Facebook。 (使用插件function)(询问权限:'email user_birthday publish_stream offline_access')
  3. 使用返回给我的令牌做graphicsAPI调用/我。

第3步返回错误,当我把url叫做放在桌面浏览器,它给了我错误“会话已经失效,因为用户已经改变了密码”。

沙盒应用程序/非沙盒应用程序没有任何区别。

在iOS中完全相同的步骤工作正常。

我在SOF和Facebook上看到了很多关于它的问题,但是他们都指的是让用户再次进行authenticationstream程,或者几天后问题就解决了。是否有人可以确认这真的是一个Facebook的错误? 还是有解决办法? 或者可以解释为什么它在Android上,而不是在iOS上? 也许这可能与我在iOS不使用Facebook应用程序,但select总是通过在浏览器中的OAuth?

感谢任何线索!

编辑:

发现到其他相关的问题,这似乎有同样的根源。

如何删除Android上所有可能的caching令牌或会话ID?

访问令牌立即失效

好的,最后我发现我的问题的根本原因是Android和iOS的facebook SDK正在处理offline_access,它们在会话对象的'expires'参数中设置的值不同。

在iOS中,'expires'将被设置为将来(4001-01-01)的一个date,而Android'expires'将被设置为0.这使得我的比较(过期<今天)失败做一个dateparsing到毫秒),并且会话总是“无效”。

(然后在我的情况下,我总是做一个注销,如果会话是无效的,这使得我的令牌在浏览器中尝试它后真正无效.. ..)