Facebook注销按钮并在注销后重定向
Posted
技术标签:
【中文标题】Facebook注销按钮并在注销后重定向【英文标题】:Facebook logout button and redirect after logout 【发布时间】:2011-06-15 19:09:31 【问题描述】:我用这个代码
<fb:login-button autologoutlink="true" perms="user_likes" size="large"></fb:login-button>
创建登录/注销 fb 按钮。 一切正常,登录后,登录按钮变为注销按钮。但是如果用户点击注销按钮,当前页面不会刷新,因此只有在用户通过身份验证时才会出现的所有内容仍然存在,直到手动页面刷新完成。
如果我获得注销 url (javascript SDK),则不会发生这种情况
$logoutUrl = $facebook->getLogoutUrl();
然后自己实现一个注销按钮;在这种情况下,传递一个正确的“next”参数(带有当前页面的 url)并重新加载当前页面。
我还是想用第一个解决方案,是否可以让它使用“next”参数?
【问题讨论】:
@Piskvor 我试过了,但到目前为止没有任何帮助facebook.***.com/questions/8066589/… 【参考方案1】:Piskvor 的上述回答为我做了。我花了多少时间试图弄清楚这一点真是太疯狂了。
像 Facebook for Cakephp 这样的插件的主要问题是它们没有更新。 API,尤其是 Facebook 等流行的 API,一直在变化,因为它们正在被改进。如果最初作为爱好编写它的人继续他的生活并停止更新 SDK,那么对如何改变这些东西不太了解的人就会陷入困境。
工作代码:
不过,感谢 Piskvor 的出色解决方案,这是我的一段代码
apps/plugins/facebook/views/helpers/facebook.php
$init .= $this->html->scriptBlock(
<<<JS
window.fbAsyncInit = function()
FB.init(
appId : '$appId',
session : $session, // don't refetch the session when PHP already has it
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
);
FB.Event.subscribe("auth.logout", function()
window.location = '/users/logout'
);
$callback
;
这里的关键代码是:
FB.Event.subscribe("auth.logout", function()
window.location = '/users/logout'
);
$callback
【讨论】:
请不要添加“谢谢”作为答案。在网站上投入一些时间,您将获得足够的 privileges 来为您喜欢的答案投票,这是 Stack Overflow 表达感谢的方式。【参考方案2】:对于集成身份验证(Facebook + Asp.Net MVC),我只使用 Javascript 和 FormsAuthentication.SignOut();
function LogoutFacebook()
FB.logout(function (response)
window.location = "/facebook/logout/";
);
【讨论】:
【参考方案3】:自己进行重定向 - 将其添加到 JavaScript,在 FB.init()
之后的某处:
<script>
FB.Event.subscribe("auth.logout", function() window.location = '/logout');
</script>
当通过 FB 按钮注销时会触发此功能。
【讨论】:
完美运行,非常感谢。我应该注意到在我的示例代码中已经有 aFB.Event.subscribe('auth.login', function() window.location.reload() );对于登录部分。对注销执行相同的操作是正确的方法。 @Eugenio:不客气。几个月前我也在做同样的事情,我认为这是一个很常见的问题:)以上是关于Facebook注销按钮并在注销后重定向的主要内容,如果未能解决你的问题,请参考以下文章
从 ASP.NET MVC 客户端应用程序和 .NET 5 openiddict 服务器注销。注销后重定向 URL 无效