Facebook JS/PHP SDK
所以我在使用 Facebook SDK 时遇到了一些奇怪的问题。我同时使用 JS SDK 和 PHP SDK。要注销用户,我使用以下 onclick:
<a href="/logout/" onclick="FB.logout ();">Log out</a>
单击该链接后,当我尝试执行任何 JS SDK 调用时,例如: FB.getAuthResponse ();正如预期的那样,它返回 null。
但是点击链接后,当我使用PHP SDK检查是否有人登录时,或者只使用以下SDK函数: $this ->脸书 ->获取访问令牌();它返回一个有效的令牌,就好像我仍然登录一样。
我在这里缺少什么? 顺便问一下,您需要我的一些 PHP 代码来检查登录吗?
提前致谢!
So I am encountering some weird problems with the Facebook SDK. I use both the JS SDK as the PHP SDK. To log a user out I use the following onclick:
<a href="/logout/" onclick="FB.logout ();">Log out</a>
After I clicked that link, when I try to perform any JS SDK call, like: FB.getAuthResponse (); it returns, as expected, null.
But after clicking the link, when I use the PHP SDK to check if someone is logged in, or just use the following SDK function: $this -> facebook -> getAccessToken (); it returns a valid token as if I am still logged in.
What am I missing here?
By the way, do you need some of my PHP code where I check for login?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
PHP sdk 将访问令牌保存到本地会话中。这是一个大问题。特别是当 facebook 令牌过期并且本地 SDK 认为它仍然处于活动状态时。我们使用的解决方案是每次需要用户数据时,我们都会检查访问令牌以查看它是否仍然有效。人们会认为这应该是 SDK 的强制性行为(以保证活跃令牌),但遗憾的是事实并非如此。
这是我们使用的代码片段。
这是我们自己的 getUser 函数的一部分。希望它能帮助您实现自己的:)
The PHP sdk saves the access token into local session. That's a huge problem. Especially in times when the facebook token expires and locally the SDK thinks it's still active. The solution we use is everytime we need user data we check against the access token to see if it's still valid. People would think this should be a mndatory behaviour of the SDK (to guarantee an active token) but sadly that's not the case.
This is snippet of the code we use.
This is part of our own getUser function. Hope it will help you to implement your own :)