【问题标题】:Google OAuth2 application. Remove self from user authenticated applications谷歌 OAuth2 应用程序。从用户认证的应用程序中删除自我
【发布时间】:2013-08-04 12:38:06
【问题描述】:

我知道这听起来很奇怪,但我希望我的应用能够自行断开与用户的连接。

就像任何谷歌用户可以输入他的设置并断开连接,如下所述:https://webapps.stackexchange.com/questions/5052/unauthenticate-google-oauth-connections

我希望我的应用能够自行执行此操作。我在 API 文档中没有找到这方面的信息,也许有人已经这样做了。

我不敢相信这是不可能实现的。应该有一些资源可以删除任何连接。

【问题讨论】:

    标签: oauth google-api oauth-2.0 google-oauth


    【解决方案1】:

    很难找到,但在 google api 文档中有记录。

    谷歌:

    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,并且响应中还包含错误码。

    其他服务:

    Twitter:无法判断您是否可以使用invalidate_token 撤销所有权限。其他选项不可用。

    所有实现 OAuth 2.0 的服务应该提供一种撤销可能性。通常,它遵循google-pattern https://..../oauth2/revoke

    【讨论】:

    • 这太好了,谢谢你的发现,很高兴看看是否有可能用 facebook、twitter、github 和 SE 来做这个
    • 赏金奖励在 7 小时后可用。
    • @Vlakarados 我已经更新了答案 - 现在还有其他服务的链接。
    • developers.google.com/identity/protocols/OAuth2WebServer - 有关使用代码示例撤销令牌的 google 文档的当前链接
    猜你喜欢
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    相关资源
    最近更新 更多