【问题标题】:The session has been invalidated because the user has changed the password由于用户更改了密码,会话已失效
【发布时间】:2012-01-19 14:40:58
【问题描述】:

为 Android 和 iOS 实施 PhoneGap 应用程序,该应用程序使用 Facebook Connect 和 PhoneGap Facebook Connect 插件 (https://github.com/davejohnson/phonegap-plugin-facebook-connect)。几天前,我开始遇到 access_token 的问题,但仅在 Android 上,相同的场景在 iOS 上也可以正常工作。一步一步是:

  1. 初始化脸书。 (使用插件功能)
  2. 登录脸书。 (使用插件功能)(询问权限:'email user_birthday publish_stream offline_access')
  3. 使用返回给我的令牌执行图形 api 调用 /me。

第 3 步返回错误,当我将调用的 url 放入桌面浏览器时,它给了我错误“会话已失效,因为用户更改了密码”。

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

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

我在 SOF 和 facebook 上看到了很多关于它的问题,但都是指让用户再次执行身份验证流程,或者问题在几天后自行解决......可以确认这真的是一个 facebook 错误吗?或者有解决办法吗?或者可以解释为什么它适用于 Android 而不是 iOS?也许这与我在 iOS 中不使用 facebook 应用程序,而是选择始终通过浏览器中的 OAuth 进行有关?

感谢您提供任何线索!

编辑:

发现了其他相关问题,这似乎与我的根本原因相同。

How can I remove all potentially cached tokens or session IDs on Android?

Access token immediately invalidated

【问题讨论】:

    标签: android ios facebook cordova


    【解决方案1】:

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

    在 iOS 中,'expires' 将设置为遥远的未来 (4001-01-01),而在 Android 中,'expires' 将设置为 0。这使我的比较 (expired

    (然后在我的情况下,如果会话无效,我总是会注销,这使得我的令牌在之后在浏览器中尝试时实际上是无效的.. doh..)

    【讨论】:

      猜你喜欢
      • 2013-07-06
      • 2019-10-15
      • 2015-10-23
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      相关资源
      最近更新 更多