首页 > 解决方案 > 处理 Google api 日历删除的访问权限

问题描述

我正在将此googleapis nodejs 客户端用于日历,并且一切正常,除了如果我从 google 帐户安全设置中删除访问权限,日历仍处于连接状态。有什么方法可以检查从谷歌帐户中删除的访问权限吗?这些情况如何处理?

标签: google-apigoogle-calendar-apigoogle-oauthgoogle-api-nodejs-client

解决方案


当用户第一次运行您的应用程序时,他们会看到一份同意书。这要求他们授予您的应用程序访问其 Google 日历数据的权限。从此时起,当您的应用程序运行时,用户可能必须再次登录,但他们不必授予您的应用程序权限。如果您有一个刷新令牌,您将能够在您想要请求新的访问令牌时使用它。访问令牌的有效期为一小时。

现在,如果您请求一个新的访问令牌,说明其有效期为一小时。即使用户为他们的帐户访问Google 帐户安全并取消同意应用程序访问他们的数据也是如此。

在您当前拥有的任何访问令牌有效时,您仍然可以访问他们的数据。如果用户再次尝试使用您的应用程序,他们将必须获得许可。如果您尝试使用刷新令牌,它将不再起作用。

访问令牌工作一小时,在此期间它们没有被重新授权,假设它们是有效的。(这实际上可能取决于相关的范围和 API 以及 google 策略服务器的工作方式。)

访问令牌被设计为自包含的权限系统。只要您拥有正确范围的访问令牌,大多数 API 都假定您具有访问权限。但是,如果此方法正在访问关键数据,那么他们可能会设置策略服务器。该服务器可能会对访问令牌进行额外检查,以确保即使用户拥有有效的访问令牌,他们仍然可以访问。但是,这样做可能非常耗时且资源繁重,因为要重新评估每个调用以确保用户仍然可以访问。这有点违背了首先拥有一个小时有效的访问令牌的目的。


推荐阅读