我在我的网络应用中使用OAuth,用户可以使用Twitter登录。
我想添加“switch twitter account”按钮,它实际上会清除会话,然后打开authorize_url。
由于在我的网络应用中清除会话不会退出twitter,authorize_url会自动验证当前的twitter.com用户。这意味着我不能退出,除非我将用户发送到twitter.com。
API可以吗?实现这个的最佳方法是什么?
答案 0 :(得分:32)
您可以使用oauth / authenticate并添加GET oauth/authenticate中指定的force_login=true
。这将提示用户使用登录表单。
答案 1 :(得分:29)
与Twitter的会话由Twitter拥有的cookie定义 - 这是您无法控制的。您不能代表他们将其从Twitter注销。
如果您希望某人能够使用您的“切换推特帐户”功能,则需要再次将其传递给OAuth握手,但请使用/oauth/authorize
路径而不是/oauth/authenticate
路径路径。这将允许用户在握手期间在Twitter上切换用户凭据,而不是仅使用现有的Twitter会话重新进行身份验证。
或者,您可以在自己的应用中拥有一个单独的用户概念,您可以拥有自己的用户模型,其中包含许多与之关联的Twitter帐户。这样,您可以让您的用户更加无缝地切换帐户。他们必须预先为每个Twitter帐户授权您的应用程序,但在此之后您将拥有他们每个Twitter帐户的所有oauth密钥。
答案 2 :(得分:1)
很抱歉评论作为回答。
亚伯拉罕解决方案效果很好,但是为了清除用户名字段,您还需要向GET请求添加screen_name=
。