google-api - 处理 Google api 日历删除的访问权限
问题描述
我正在将此googleapis nodejs 客户端用于日历,并且一切正常,除了如果我从 google 帐户安全设置中删除访问权限,日历仍处于连接状态。有什么方法可以检查从谷歌帐户中删除的访问权限吗?这些情况如何处理?
解决方案
当用户第一次运行您的应用程序时,他们会看到一份同意书。这要求他们授予您的应用程序访问其 Google 日历数据的权限。从此时起,当您的应用程序运行时,用户可能必须再次登录,但他们不必授予您的应用程序权限。如果您有一个刷新令牌,您将能够在您想要请求新的访问令牌时使用它。访问令牌的有效期为一小时。
现在,如果您请求一个新的访问令牌,说明其有效期为一小时。即使用户为他们的帐户访问Google 帐户安全并取消同意应用程序访问他们的数据也是如此。
在您当前拥有的任何访问令牌有效时,您仍然可以访问他们的数据。如果用户再次尝试使用您的应用程序,他们将必须获得许可。如果您尝试使用刷新令牌,它将不再起作用。
访问令牌工作一小时,在此期间它们没有被重新授权,假设它们是有效的。(这实际上可能取决于相关的范围和 API 以及 google 策略服务器的工作方式。)
访问令牌被设计为自包含的权限系统。只要您拥有正确范围的访问令牌,大多数 API 都假定您具有访问权限。但是,如果此方法正在访问关键数据,那么他们可能会设置策略服务器。该服务器可能会对访问令牌进行额外检查,以确保即使用户拥有有效的访问令牌,他们仍然可以访问。但是,这样做可能非常耗时且资源繁重,因为要重新评估每个调用以确保用户仍然可以访问。这有点违背了首先拥有一个小时有效的访问令牌的目的。
推荐阅读
- reactjs - react-redux connect 提供未定义的道具
- probability - 如何按白天对正态分布传感器测量进行建模?
- javascript - 在包装组件之前停止安装 React 高阶组件?
- c - C:从文件中获取以特定字符开头的随机字符串
- mpi - 使用 MPI Barrier 会导致致命错误
- php - 错误:SQLSTATE[HY093]:无效参数号:未定义参数 NOOB
- laravel - 雄辩的 hasOne 关系返回 null
- docker - Openshift/original - 基于 Wildfly 创建镜像
- python - 为什么 cookie(显示在 Postman 应用程序中)没有显示在 Python 响应变量中?
- python - 将二进制搜索解决方案与书籍进行比较