撤销 Google 应用程序回调端点

Revoke Google application callback endpoint

我们正在实施 Web 应用程序并使用 Gmail API C# SDK 来提供对用户邮件的访问。

我们撤销对我们应用程序的访问权限,如下所示:

IAuthorizationCodeFlow googleApp;

var token = await googleApp.LoadTokenAsync(orgId, CancellationToken.None).ConfigureAwait(false);

googleApp.RevokeTokenAsync(orgId, token.AccessToken, CancellationToken.None).ConfigureAwait(false);

上面的代码运行良好 - 它从数据存储中删除了令牌,它还从 Google 可以访问用户帐户的第三方应用程序中删除了我们的应用程序。

但是,如果用户不是通过我们的应用程序而是通过他的 Google 帐户本身来撤销应用程序怎么办 - 我们的应用程序如何知道这一点?在这种情况下,我们可以在我们这边配置任何回调 url 来捕获和处理来自 Google 的调用吗?我们在文档和 https://console.developers.google.com/.

中都没有发现任何类似的东西

当然,我们知道当我们调用 Google 并捕获特定的 Google SDK TokenResponseException 异常时,我们可以在我们的代码中处理它,但是拥有回调将很有用终点.

谢谢, 叶夫根.

But what if user wants to revoke the app not withing our application, but from his Google account itself - how can our application get know that ?

Google 不会通知您您的访问权限已在他们的系统中被撤销。

下次您的应用程序运行并尝试使用其刷新令牌时,它将收到一条错误消息,指出您无权访问。您将需要处理此错误消息并再次请求访问权限。

如果您使用的是 google .net 客户端库,那么您不必担心它会通过再次向用户显示同意屏幕来处理错误

您询问用户如何不在您的应用程序内,而是从他们的 Google 帐户本身撤销该应用程序。如果用户已登录到他们的帐户,他们只需转到 https://myaccount.google.com/permissions,在那里他们可以点击您的应用程序名称来撤销它。