如何撤销用户的 google 刷新令牌?

How to revoke a user's google refresh token?

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

如何使用节点 js 和 google 日历 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,
});

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

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

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

删除用户同意后,刷新令牌将自动撤销。因此需要访问令牌来调用 api 端点以撤销刷新令牌。