2009-12-25 51 views
28

我在我的web应用中使用OAuth,用户可以使用twitter登录。Twitter API - 注销

我想添加“切换twitter帐户”按钮,它实际上清除会话,然后打开authorize_url。

由于在我的web应用程序中清除会话不会退出twitter,因此authorize_url会自动验证当前的twitter.com用户。这意味着我不能做注销,除非我将用户发送到twitter.com。

API可能吗?什么是实施这个最好的方法?

回答

29

与Twitter的会话由Twitter拥有的cookie定义 - 您无法控制的内容。你不能以他们的名义将他们登出Twitter。

如果您希望某人能够使用您的“切换Twitter帐户”功能,则需要再次将它们传递给OAuth握手,但使用/oauth/authorize路径而不是/oauth/authenticate路径。这将允许用户在握手期间在Twitter上切换他们的用户凭证,而不是使用他们现有的Twitter会话重新进行身份验证。

或者,您可以在自己的应用程序中拥有单独的用户概念,从而您拥有自己的用户模型,并拥有许多与其关联的推特帐户。这样,您可以让用户更加无缝地切换帐户。他们必须预先为他们的每个Twitter帐户授权您的应用程序,但是之后您将拥有他们每个Twitter帐户的所有oauth密钥。

+0

谢谢!我使用/ authenticate /而没有真正了解其中的差异,但通过授权,它可以在Twitter上向用户显示他们的帐户。 – elado

+0

谁可以发布bengottlieb/Twitter-OAuth-iPhone的代码。我无法注销。 – Voloda2

+2

如何注销Twitter并以另一个帐号登录。你可以放一些代码吗? – Emerald214

32

您可以按照GET oauth/authenticate的规定使用oauth/authenticate并添加force_login=true。这将以登录表单提示用户。

+0

工作得很好,但窗体仍然包含以前登录用户的用户名:(。 –

+0

@MubasharAhmad所以?你确定它不只是浏览器自动填写表格吗? – abraham

+0

我使用/ session/destroy url登录但似乎它不再可用,它显示空白的登录表单。无论如何,我不确定它是网络控制还是叽叽喳喳自己。但也许你是对的我要检查网页浏览器控制功能,使其工作。 –

0

对不起,评论为答复。 亚伯拉罕解决方案的伟大工程,但为清除用户名字段您还需要添加screen_name= GET请求。