我正在使用oauth方法,以允许用户使用Twitter和Facebook登录我的网站。我还计划添加Yahoo!和谷歌以及Stack Overflow一样。一旦用户成功登录Twitter,他们就可以选择退出。
我想在选择“退出”按钮或链接时将用户注销到我的网站AND TWITTER。如果用户访问我的网站而不是Twitters,我还需要它退出Twitter。我该怎么做?
演示和示例:develop.f12media.com 用户点击页面顶部的“登录”以使用他们的Twitter帐户登录。
答案 0 :(得分:8)
将用户重定向到http://twitter.com/logout可能会有效。
但不要这样做。 OAuth并不意味着这样做。只需将用户从您的网站中注销即可。
通过OAuth登录您的网站并不一定会在Twitter上登录,因此通过您的网站记录 out 也不应该将其记录下来。
答案 1 :(得分:1)
在Facebook中可以轻松完成,因为facebook提供了logout.php,它需要next=sendBackURL
作为参数。
所以当用户点击你的应用程序的Logout按钮时,我们可以调用上面的注销URL,这将注销用户,智能facebook网址next=sendBackURL
将发送到你的应用程序登录页面。
但上面的内容似乎很难在推特上,但我想如果我这样做,那么用户将会在Twitter网站上,但他将从你的应用程序和推特中注销。
所以它可以通过发送authorize?force_login=true
,它将被调用或将在您的应用程序从您的站点注销用户后立即获得重定向,并且用户将再次被定向到Twitter,我已经测试了它注销用户来自Twitter,虽然它会再次询问Twitter凭据,但没有问题,用户可以忽略它。
如果Twitter也可以提供一些注销网址,它会使用下一个网址,这将很容易。
答案 2 :(得分:0)
用户是否在Twitter网站上进行了身份验证是在用户和Twitter网站之间进行的。您无权访问或控制它。您只能控制您网站上该用户的身份验证令牌。您可以在用户注销站点时使用户的身份验证令牌失效,但这只会影响他们通过您的站点进行的Twitter身份验证。所有这一切都可以实现,因此他们必须在下次登录您的网站时再次通过Twitter进行身份验证。
我认为你正在努力完成你不需要的东西。这是OAuth的预期流程,您不应该担心将此人记录在第三方网站之外。