Asp.net mvc 4 带有返回URL的注销链接(OAuth)

Asp.net mvc 4 带有返回URL的注销链接(OAuth),asp.net-mvc-4,oauth-2.0,logout,google-oauth,Asp.net Mvc 4,Oauth 2.0,Logout,Google Oauth,我的应用程序与Facebook、Google和Microsoft(使用OAuth)集成 要从facebook注销,我使用以下URL: https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken] 谷歌和微软有类似的情况吗 对于谷歌,我尝试过: https://accounts.google.com/Logout?continue=http://localhost:51820

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

要从facebook注销,我使用以下URL:

https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken]
谷歌和微软有类似的情况吗

对于谷歌,我尝试过:

https://accounts.google.com/Logout?continue=http://localhost:51820
但它不起作用。。。它返回:
您请求的页面无效。


我如何才能注销该URL?

你不应该将用户从Facebook、谷歌等网站注销。你只需要将他们从你的应用程序中注销即可。通过将他们重定向到
accounts.google.com/Logout
你实际上是在将用户从他们的谷歌帐户中注销,这意味着如果他们在另一个选项卡中打开了Gmail(比如),他们也会被注销。类似地,如果你将他们重定向到
www.facebook.com/logout.php
,你实际上是在将他们从facebook注销,这意味着如果他们在另一个选项卡中打开facebook,他们也会从那里注销


相反,当用户注销你的应用程序时,你应该做的就是“忘记”OAuth令牌。

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

  • Facebook:
https://www.facebook.com/logout.php?next=[YourAppURL]&访问令牌=[ValidAccessToken]

资料来源:

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

资料来源:

  • 微软:
https://login.live.com/oauth20_logout.srf?client_id=[客户端ID]&重定向uri=[重定向URL]

资料来源:

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

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

实施建议:

我知道这一点,但我首先要问他们是否真的想从提供商处注销。例如,在公共计算机上,这可能很有用。事实上,facebook在其政策中规定,如果您在应用程序上提供“注销”按钮,您也必须从facebook注销用户。不幸的是,如果用户已在服务器端获得授权,则它们无法提供正确的方法。我允许通过用户名/密码和社交媒体登录到我网站上的单个帐户。如果您编辑帐户以更改密码,并且使用用户名/密码登录,则需要提供旧密码(即重新验证)。如果您通过Facebook登录,则应要求您重新通过Facebook身份验证。但唯一的方法是强制从Facebook注销-如果不这样做,Oauth身份验证将立即成功,因为您的会话仍然登录到Facebook。您使用Oauth进行客户端(仅JavaScript集成)还是服务器端(服务器上有访问码和令牌交换)?注意,对于服务器端的情况,向客户端公开访问令牌是错误的。Facebook没有提供适当的方式来注销通过服务器端授权的用户。hi@amp尝试了你的谷歌示例,效果很好!你有同样的LinkedIn账户吗…?谢谢你。我浪费了半天的时间来寻找重定向回我家而不是谷歌登录的解决方案。这真的奏效了。