如何从谷歌撤销 OAuth 提供的令牌?节点JS

Posted

技术标签:

【中文标题】如何从谷歌撤销 OAuth 提供的令牌?节点JS【英文标题】:How to revoke token provided by OAuth from google? NodeJS 【发布时间】:2017-11-30 13:29:44 【问题描述】:

我已经使用 oauth2 从我的 NodeJS 应用程序连接到 google plus,但是如何撤销令牌/断开连接?我在 NodeJS 的文档中找不到任何内容。

【问题讨论】:

【参考方案1】:

如果 access_token 过期,revokeToken 方法返回“Invalid Token Error”。这时候我们可以通过 refresh_token (如果你已经获取了它并把它放在一个持久化存储中)。所以代码的变化如下

let token = oauth2Client.credentials.refresh_token;   
oauth2Client.revokeToken(token, function(err, body) 
    //Do something here after checking if err is set or not
);

【讨论】:

【参考方案2】:

您可以使用revokeToken 函数从google.auth.OAuth2 对象撤销令牌:

oauth2Client.revokeToken(token, function(err, body) 

);

您还拥有revokeCredentials 函数,用于清除凭证对象并撤销其中的访问令牌:

oauth2Client.revokeCredentials(function(err, body) 

);

【讨论】:

以上是关于如何从谷歌撤销 OAuth 提供的令牌?节点JS的主要内容,如果未能解决你的问题,请参考以下文章

ApiGee OAUTH 授权

OAuth 2 中的访问令牌撤销实现

如何从谷歌 api 令牌中获取数据?

如何以管理员用户身份撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT

如果 oauth 是无状态的,谷歌如何销毁 oauth 令牌?

如何撤销 Discord OAuth2.0 中的令牌?