我正在建立一个网站w / facebook javascript& php SDK一起工作......它通常运行良好,但是 - 我发现对于一台使用chrome的测试机器,当我从客户端/ javascript执行FB登录时一方面,后端的PHP sdk无法识别它 - facebook :: getUser()函数返回0
经过大量的头痛和谷歌搜索无济于事,我通过chrome开发工具意识到/注意到,对于正在工作的机器,我看到名为“PHPSESSID”的cookie以及包含我的facebook uid的“C_user”和其他名称/价值对;而在非工作机器上,我只看到“PHPSESSID”。然后我发现/意识到非工作机器上的chrome已禁用第三方cookie。
所以这显然是问题..我已经做了一些谷歌搜索,但我无法找到一个明确的答案,是否有一个解决方法或更好的方法。
如果用户/浏览器禁用第三方Cookie,是否根本无法集成js + php sdk?我的PHP后端代码如何确定我正在处理哪个facebook用户?
答案 0 :(得分:1)
从javascript登录后,您可以编写自己的第一方cookie,其中包含登录用户的用户ID。如果需要,您还可以包含访问令牌,但出于安全原因,我不建议这样做。
答案 1 :(得分:1)
我通过使用php-SDK getLoginUrl()在页面上提供登录链接并让用户使用它而不是对javascript login()函数进行客户端调用或使用它来解决这个问题。 facebook社交/登录插件。它可能在某些时候遇到弊端,但是现在这似乎适用于禁用第三方cookie的机器