带有返回URL的注销链接(OAuth)

时间:2013-06-11 17:53:41

标签: asp.net-mvc-4 oauth-2.0 logout google-oauth

我的应用程序与Facebook,Google和Microsoft(使用OAuth)集成。

要从facebook退出,我使用以下网址:

https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken]

谷歌和微软有类似的东西吗?

对于谷歌我试过:

https://accounts.google.com/Logout?continue=http://localhost:51820

但它不起作用......它返回:The page you requested is invalid.

如何获取该网址?

2 个答案:

答案 0 :(得分:17)

我终于得到了正确的链接:

  • Facebook的:

https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken]

来源:A Working Facebook OAuth Logout URL

  • 谷歌:

https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=[http://www.mysite.com]

来源:google account logout and redirect

  • 微软:

https://login.live.com/oauth20_logout.srf?client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URL]

来源:Server-side scenarios

这些链接可以像JavaScript一样使用:

function logout (){
document.location.href = "https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken]";
}

建议实施此目的:Logout from external login service (Gmail, facebook) using oauth

答案 1 :(得分:3)

您不应该将用户从Facebook,Google等用户登出。您只需要将其从您的应用中注销。通过将它们重定向到accounts.google.com/Logout,您实际上是将用户从其 Google 帐户中删除,这意味着如果他们还在另一个标签中打开了Gmail(比如说),那么他们也会被注销那个。同样,如果您将它们重定向到www.facebook.com/logout.php,您实际上是将它们从 Facebook 中删除,这意味着如果他们在另一个标签中打开了Facebook,那么它们也会被注销。

相反,当用户退出您的应用时,您应该做的就是“忘记”OAuth令牌。