繁体   English   中英

如何通过gem OmniAuth Facebook / Twitter注销社交网站

[英]How to log out social sites via gem OmniAuth Facebook/Twitter

我正在使用omniauth-facebookomniauth-twitter gems来启用通过Facebook,Twitter登录。

一切正常,我能够使用OAuth验证用户。 这里的BIG问题是,当用户从我的应用程序注销时,它不会从他们认证的社交网站注销,这很危险。

我想添加一个功能,将破坏两个地方的会话,即我的应用程序和相应的社交网站。 我怎么做? 是否可以使用我目前使用的omniauth gems 或者是否有可用于实现此目的的替代gem / API?

在我看来,问题是我们不知道用户的意图。 如果用户从您的应用程序注销并且他们没有其他标签打开Facebook,然后他们离开计算机,认为他们已经完成但是让浏览器打开,那么是的,这将是糟糕的。 另一方面,如果他们在Facebook上有另一个标签,如果他们退出你的应用程序,然后切换到期望继续使用Facebook的其他标签,他们将会生气。 你可能会说,讨厌的人比让他们不知不觉地登录Facebook更好 - 我一般都同意!

如果您正在处理登录流服务器端,我不知道这样做的好/官方方式。 有人建议建立一个正常的Facebook网址 - 请参阅https://stackoverflow.com/a/8765863 - 我想你可以重定向到那个并重新定向,如果这种方法仍然有效(这是一个老答案),但它感觉很脆弱正如用户所暗示的那样

如果你使用的是javascript api,那就是FB.logout函数:

https://developers.facebook.com/docs/reference/javascript/FB.logout/

和/或使用auto_logout_link参数自动显示注销按钮而不是登录按钮:

https://developers.facebook.com/docs/plugins/login-button/

涵盖用户意图场景的一个选项是使用正常的注销按钮显然会杀死应用程序的会话,当他们点击它时,重定向到一个“从Facebook注销?”的页面。 按钮 - 可能使用带有auto_logout_link参数的javascript登录按钮。 然后,如果他们已完成计算机,他们可以从Facebook注销,或者如果他们在另一个选项卡中打开Facebook并且想继续使用它,则选择不点击它。

我相信你知道,omniauth-facebook支持服务器端和客户端登录流程。

我不确定omniauth-twitter是否可以使用它 - 我没有相关经验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM