3

我们正在使用google/fb/twitterdjango进行django-socialauth身份验证,但 Facebook 连接按钮仅在 chrome 中存在问题(既不是 safari),也不显示按钮。

4

2 回答 2

1

哈 - 我在您通过 Google 搜索发布后大约 3 小时发现了这篇文章,使用 django-socialauth 时出现了相关问题,其中显示了按钮,但如果用户已经登录 Facebook.com,则无法成功登录。

使用以下代码修复它,其中包括对连接按钮图像进行硬编码,因此也应该解决您的问题(检测 webkit 并首先将用户注销,这解决了我的问题。由于该错误仅影响 webkit 并且首先注销不是很好对于用户,我想保持其他浏览器的标准行为 - 我使用 jQuery 进行浏览器检测,但您可以使用另一种方式或简单地跳过 Javascript 中的 IF 并为所有浏览器使用注销优先行为)

<a href="#" onclick="if ($.browser.webkit || $.browser.safari) { FB.Connect.logout(function(){FB.Connect.requireSession(facebook_onlogin);return false;}); } else { FB.Connect.requireSession(facebook_onlogin); }; return false;">
    <img id="RES_ID_fb_login_image" src="http://static.ak.fbcdn.net/rsrc.php/zA114/hash/7e3mp7ee.gif" alt="Connect">
</a>
于 2010-02-17T18:03:50.197 回答
1

如果您有 fb 的自定义按钮,则可以使用 facebook 中间件来解决此问题:

将此添加到您的MIDDLEWARE_CLASSESin settings.py

...
'facebook.djangofb.FacebookMiddleware',
...
于 2010-02-26T00:51:44.730 回答