问题描述
背景:
- 使用 Facebook PHP SDK v 2.1.2
- cookieSupport = 真
- Facebook 上的应用启用了适用于 Canvas 的 OAuth 2.0
- Facebook Connect/登录逻辑通过 https 发生在单独的子域 (secure.mysite.com) 上
- 开发网站是 dev.mysite.com:PORT_NUM
什么有效
- 我可以使用 Facebook Connect 成功登录
- 通过 Facebook 对话框授权后,我们将用户登录,然后重定向到 fbconnect.php,它会实例化 Facebook 类并调用 $facebook->getSession()
- 这将返回一个有效的 Facebook 会话,然后我们继续执行我们的登录后逻辑
- 然后我们重定向到登录的主页
什么不起作用
- 在那之后的任何时候,$facebook->getSession() 都会返回 NULL.无论如何.
- 根据文档,只要 cookie 有效,Facebook 就应该根据 cookie 重新生成有效会话.持续时间设置为默认值 1 小时,但即使在设置 cookie 后 30 秒完成调用也会失败.
我想知道 fbs_ cookie 中是否存在阻止登录后会话重新生成的内容.与安全子域或我们在开发站点上使用的端口号相关的内容?
I'm wondering if there's something in the fbs_ cookie that's preventing the regeneration of a session post sign-in. Something related to the secure subdomain or possibly the port numbers we use on our dev sites?
据我所见,有很多人在使用 Facebook 会话时遇到类似问题,但我遇到的建议似乎并未解决 fbs_ cookie、域、端口等的内容.我的理解这些事情与 cookie 的关系相对较轻,但我想至少将它们作为非问题检查,以便我可以查看其他地方.
There are a lot of people having similar problems with Facebook sessions from what I've seen, but the suggestions I've come across don't seem to address the content of the fbs_ cookie, domains, ports etc. My understanding of how such things relate to cookies is relatively light, but I'd like to at least check them off as non-issues so I can look elsewhere.
欣赏任何见解.
推荐答案
新的 Facebook PHP SDK (v3) 解决了这个问题
This issue went away with the new Facebook PHP SDK (v3)
这篇关于Facebook PHP SDK getSession() 无法获取会话.饼干问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!