Twitter OAuth: 我们如何让用户退出 Twitter?

3

我正在使用oauth方法,以便允许用户使用Twitter和Facebook登录我的网站。我还计划像Stack Overflow一样添加Yahoo!和Google。一旦用户成功使用Twitter登录,他们可以选择退出登录。

我希望当选择“注销”按钮或链接时,用户从我的网站和Twitter中注销。我需要在用户访问我的网站而不是Twitter的情况下使其注销Twitter。我该怎么做?

演示和示例:develop.f12media.com 用户点击页面顶部的“登录”按钮,以使用他们的Twitter账户登录。

3个回答

8

将用户重定向到http://twitter.com/logout可能会起作用。

但是不要这样做。OAuth并不意味着以这种方式运行。只需从您的站点注销用户即可。

通过OAuth登录您的网站并不一定会同时登录Twitter,因此通过您的站点退出也不应该同时注销他们的Twitter帐户。


1
通过Oauth登录我的网站也会将用户登录到Twitter。 - Kevin
我成功地将用户重定向到 http://twitter.com/logout,以便用户也可以注销 Twitter。 - Kevin
2
@Kevin,从Twitter访问OAuth令牌并不一定会将用户登录到Twitter。这可能会发生,但这完全取决于Twitter。最好别管它。 - Kenan Banks
1
即使登录您的网站不一定会将用户登录到 Twitter,这并不意味着不应该允许用户注销 Twitter。实际上,有些情况下您需要要求用户注销 Twitter,无论他是否登录您的网站。 - matteo
实际上,尤其是当用户未登录您的网站且没有访问令牌时,您可能需要这个。例如,当用户第一次访问您的网站并使用朋友的电脑时,他已经登录但没有使用他想要登录的账户(他甚至不知道)。因此,您希望给他注销的可能性。 - matteo
再次使用不同的用户登录。 - matteo

1
在Facebook上,这很容易实现,因为Facebook提供了logout.php,并将next=sendBackURL作为参数。
因此,当用户单击您应用程序的注销按钮时,我们只需调用上述注销URL,它将注销用户并智能Facebook URL next=sendBackURL将发送到您的应用程序登录页面。
但是,在Twitter上似乎很难做到这一点,但我认为如果我做同样的事情,那么用户将在Twitter网站上,但他将从您的应用程序和Twitter中注销。
因此,可以通过发送authorize?force_login=true来实现,它将在您的应用程序注销用户后立即被调用或重定向,并且用户将再次被引导到Twitter,我已经测试过它会注销用户从Twitter,尽管它会再次要求Twitter凭据,但没有问题,用户可以忽略它。
如果Twitter也可以提供一些注销URL,它将很容易。

0

用户是否在Twitter网站上进行了身份验证是用户和Twitter网站之间的事情。您无法访问或控制它。您只能控制您站点上该用户的身份验证令牌。当他们从您的站点注销时,您可以使用户的身份验证令牌过期,但这只影响他们通过您的站点进行的Twitter身份验证。所有这些只会使他们下次登录您的站点时必须再次进行Twitter身份验证。

我认为您正在尝试实现一些不必要的东西。这是OAuth的预期流程,您不应该担心将人员注销出第三方网站。


当用户登录到我的网站时,他们被重定向到 Twitter 来使用 Twitter 登录到我的网站。我发现它确实将用户登录到了 Twitter。 - Kevin
我并没有说它不会,事实上当你从Twitter请求令牌时,我会预期它会。问题仍然是,你不应该担心用户是否已经登录到Twitter网站。除了显而易见的情况,你甚至不知道你的用户在注销你的网站时是否想要注销Twitter账户?如果我同时在使用Twitter和你的网站,并且我从你的网站注销,怎么办? - ashelvey
说到这一点,即使您确切知道用户想要退出 Twitter,这仍然是一个不好的主意。它很粗糙,会打乱预期的流程。 - ashelvey
问题在于信息安全。假设一个用户通过 Twitter 登录我的网站,然后退出我的网站。如果另一个用户坐下来并访问 Twitter,上一个用户仍然会保持登录状态。 - Kevin
2
@Kevin,依我之见,你最好告知用户这个风险。没有技术解决方案可以保证你能从你的网站上注销他们的Twitter账户。 - Kenan Banks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接