29

我在我的网络应用程序中使用 OAuth,用户可以使用 twitter 登录。

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

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

API可以吗?实现这一点的最佳方法是什么?

4

3 回答 3

33

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

于 2009-12-28T23:54:42.757 回答
32

与 Twitter 的会话由 Twitter 拥有的 cookie 定义——您无法控制它。您不能代表他们将他们从 Twitter 中注销。

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

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

于 2009-12-25T15:55:26.633 回答
1

很抱歉评论为答案。abraham 解决方案效果很好,但要清除用户名字段,您还需要添加screen_name= 到 GET 请求。

于 2014-10-02T05:09:26.777 回答