我知道这听起来可能很奇怪,但我希望我的应用程序能自行断开与用户的连接。
就像任何谷歌用户都可以输入他的设置并断开连接一样,如下所述:https://webapps.stackexchange.com/questions/5052/unauthenticate-google-oauth-connections
我希望我的应用程序能够自己完成这项工作。我在API文档中没有找到这方面的信息,也许有人已经这样做了。
我不敢相信这是不可能实现的。应该有一些资源来删除任何连接。
它很难找到,但在googleapi文档中有文档记录。
谷歌:
https://developers.google.com/identity/protocols/OAuth2WebServer#tokenrevoke
应用程序可以通过编程撤销其自己的访问权限。在用户取消订阅或删除应用程序的情况下,这种类型的吊销很重要,其中API请求删除授予应用程序的权限应该是删除过程的一部分。
若要以编程方式吊销令牌,应用程序会向https://accounts.google.com/o/oauth2/revoke并包括令牌作为参数:
curl https://accounts.google.com/o/oauth2/revoke?token={token}
指定的令牌可以是访问令牌或刷新令牌。如果该令牌是访问令牌,并且具有相应的刷新令牌,则刷新令牌也将被吊销。
如果撤销成功,则响应的状态代码为200。如果发生错误,响应的状态代码为400,并且响应还包含错误代码。
其他服务:
- Facebook:https://developers.facebook.com/docs/facebook-login/permissions/#revokelogin
- 推特:https://dev.twitter.com/docs/api/1.1/post/oauth2/invalidate_token
- SE:http://api.stackexchange.com/docs/application-de-authenticate
- Github:http://developer.github.com/v3/oauth/#delete-授权书
Twitter:无法判断是否可以使用invalidate_token
吊销所有权限。其他选项不可用。
所有实现OAuth 2.0的服务都应提供一种撤销的可能性。通常,它遵循google-pattern
https://..../oauth2/revoke