【问题标题】:Facebook Logout from app without session (user app authorization)Facebook 从没有会话的应用程序中注销(用户应用程序授权)
【发布时间】:2010-09-27 13:17:43
【问题描述】:

我已经用这个把头撞到墙上太久了。

我在 facebook 之外有一个页面,带有一个赞按钮。因为它应该在公共计算机上,所以我们还需要一个可见的注销按钮。单击“喜欢”时,系统会提示用户输入登录凭据。如果这些都可以,则类似事件会正常进行。然后用户应该能够注销。哪个不行。

like 按钮现在是一个 - 元素。单击时,它会创建一个我可以很好地捕捉到的 edge.create-event。

对于注销按钮,我尝试了 2 个选项。

第一个:

<fb:login-button autologoutlink="true"></fb:login-button>

问题在于,即使在用户通过点赞链接登录后,即使在页面刷新后,该链接仍保持“登录”状态。

和一个普通的按钮,触发

FB.logout(function(response) {
   cout(response);
});

这会返回一个错误“FB.logout() 在没有会话的情况下调用”。这似乎是因为用户尚未授权该应用程序。所以应用程序没有权利。如果用户已授权应用程序,则两个注销选项都可以正常工作。问题是,仅在单击“登录”按钮时才会询问。在这个用例中,用户先登录然后点击喜欢是没有意义的。

任何想法如何在不从用户获得应用授权的情况下让注销工作? 或者如何以要求应用授权的方式制作“喜欢”按钮?

【问题讨论】:

    标签: javascript facebook sdk facebook-like logout


    【解决方案1】:

    我认为这是不可能的。

    您可以检查是否有人当前已登录 facebook,但您未登录,这是您能做的最多的事情。如果用户未授权您的应用,那么您将无法对他们的登录会话(或数据)执行任何操作。

    不过,我认为您不必担心公用计算机,毕竟这是 Facebook 的问题,而不是您的问题。如果用户在登录期间在公共计算机上选中“记住我”,那么他们很可能也不会点击您的注销按钮。

    【讨论】:

    • 目前我不得不担心公共计算机,因为这是客户想要的:(...我能想出的唯一解决方法是如果我可以让点赞按钮请求授权。目前我必须处理应用程序的整个逻辑以避免遇到问题。但是如果我解决了这个问题,应用程序可能会更好。无论如何,感谢您的评论。
    • 已接受,因为目前看来这是不可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2016-08-07
    • 2011-10-14
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多