代码之家  ›  专栏  ›  技术社区  ›  diegueus9

Chrome中的facebook connect按钮有问题(我们使用的是django和django sociauth)

  •  3
  • diegueus9  · 技术社区  · 15 年前

    我们正在使用 django django-socialauth 对于使用google/fb/twitter的auth,但Facebook连接按钮仅在Chrome(两个Safari都没有)中有问题,不要显示该按钮。

    2 回复  |  直到 15 年前
        1
  •  1
  •   AndyY    15 年前

    哈哈-我在你通过谷歌搜索发布这篇文章3小时后发现,在使用Django SocialAuth时,出现了一个相关的问题,按钮出现了,但如果用户已经登录facebook.com,就无法成功登录。

    使用以下代码修复它,其中包括硬编码连接按钮图像,因此也应该解决您的问题(检测WebKit并首先将用户注销,这将修复我的问题)。由于这个bug只影响了webkit,首先注销对用户来说不太好,所以我想保留其他浏览器的标准行为-我使用jquery进行浏览器检测,但您可以使用其他方法,也可以跳过javascript中的if,并对所有浏览器使用logout first行为)

    <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>
    
        2
  •  1
  •   diegueus9    15 年前

    如果你有一个自定义的buttom for fb,你可以使用facebook中间件来解决这个问题:

    将此添加到 MIDDLEWARE_CLASSES 在里面 settings.py :

    ...
    'facebook.djangofb.FacebookMiddleware',
    ...