【问题标题】:How to revoke a user's google refresh token?如何撤销用户的谷歌刷新令牌?
【发布时间】:2022-02-14 17:05:00
【问题描述】:

我让用户连接他们的谷歌日历帐户,以允许他们的患者与他们预约。

如何使用节点 js 和谷歌日历 API 撤销用户的刷新令牌?有时用户要求我们不再访问他们的帐户。我要实现他们的愿望。

这是我正在使用的代码

const {tokens} = await oauth2Client.getToken(request.query.code);
oauth2Client.setCredentials({
   access_token: tokens.access_token,
}); // use the new auth client with the access_token

let {data} = await oauth2.userinfo.get({
   auth: oauth2Client,
});

【问题讨论】:

    标签: node.js google-api google-oauth google-api-nodejs-client


    【解决方案1】:

    试试 revokeToken 方法。它要求您将特定的 accessToken 传递给方法:oauth2client.ts#L801

    或者有 revokeCredentials 方法不接受任何参数,并撤销当前在 OAuth2 实例中配置的访问令牌:oauth2client.ts#L827

    我告诉您使用访问令牌来撤销刷新令牌可能听起来很奇怪,但如果您阅读tokenrevoke,您会发现它实际上所做的是删除用户对您的应用程序的同意。

    一旦用户同意被删除,刷新令牌就会自动撤销。所以需要一个访问令牌来调用api端点来撤销刷新令牌。

    【讨论】:

    • 但是访问令牌不会在一天左右后过期吗?
    • 访问令牌在一小时后过期。使用您的刷新令牌请求新的访问令牌。然后使用访问令牌调用撤销端点。然后,这将撤销用户授予您的应用程序的访问权限。刷新令牌将不再起作用。
    • 我在使用访问令牌时收到错误“无效令牌”。我该怎么办?
    • 申请一个可能已经过期的新的。
    • 我必须让用户再次通过 oauth 吗?
    猜你喜欢
    • 2021-09-24
    • 2017-06-15
    • 2019-04-12
    • 2021-02-23
    • 2020-02-20
    • 2015-12-13
    • 2018-11-14
    • 2021-07-05
    • 2020-10-19
    相关资源
    最近更新 更多