在 Google API 中检测应用程序的撤销权限

2024-02-04

我正在使用 PHP Google 客户端库。我成功从 user/google 获取了令牌并刷新令牌以与 API 一起使用。 一旦用户在 Google 页面上的 Google 设置中撤销我的网站的权限,我就会收到以下错误:

Error calling GET https://www.googleapis.com/calendar/v3/users/me/calendarList: (401) Invalid Credentials

这是预期的行为,因为用户撤销了我的许可。 但是,如何检测用户撤销了该访问权限?

目前我执行以下操作来查看我是否有权访问:

//$token json fetched from database
$gclient->setAccessToken($token);
if ($gclient->getAccessToken())
    //i should have access

不幸的是,这段代码没有检测到撤销的权限。我该如何处理?


一旦您检测到用户已撤销权限,您可以要求用户再次授予权限。

要检测授权已被撤销:前提是您之前已获得授权,

  • 使用已撤销的 API 进行调用access_token将导致带有状态代码的响应401。像这样

    {
      "error": {
        "errors": [
          {
            "domain": "global",
            "reason": "authError",
            "message": "Invalid Credentials",
            "locationType": "header",
            "location": "Authorization"
          }
        ],
        "code": 401,
        "message": "Invalid Credentials"
      }
    }
    
  • 撤销后尝试刷新令牌将导致响应400状态码和invalid_grant信息。正如指定的那样RFC 6749,第 5.2 节 https://www.rfc-editor.org/rfc/rfc6749#section-5.2

invalid_grant 提供的授权授予(例如,授权 代码、资源所有者凭据)或刷新令牌是 无效、过期、撤销、与重定向不匹配 授权请求中使用的 URI,或颁发给 另一个客户。

以下是此类响应的示例:


    {
       "error" : "invalid_grant"
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google API 中检测应用程序的撤销权限 的相关文章

  • Spring Boot - 使用 JWT、OAuth 以及单独的资源和身份验证服务器

    我正在尝试构建一个使用 JWT 令牌和 OAuth2 协议的 Spring 应用程序 我的身份验证服务器正在运行 感谢本教程 https medium com nydiarra secure a spring boot rest api w
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 雅虎 OAuth2 隐式授予流程不适用于新的雅虎应用程序

    我有现有的网络应用程序和专用雅虎应用程序 https developer yahoo com apps 在职的 它用OAuth2 隐式授权流程 https developer yahoo com oauth2 guide flows imp
  • OAuth2 变量redirect_uri

    我们正在编写一个与 OAuth2 API 集成的插件 棘手的部分是 我们无法像大多数集成中那样对重定向 URI 进行硬编码 因为客户端可以在他们控制的任何域上安装此插件 例如 Wordpress 插件 并且访问令牌需要重定向回其自定义 ur
  • Microsoft Graph API 不返回刷新令牌

    我创建了一个应用程序https apps dev microsoft com https apps dev microsoft com 具有以下应用程序权限 Calendars Read Admin Only Calendars ReadW
  • Twitter\OAuth2\Python 入门

    我正在尝试使用 python 连接到 twitter 但我发现它真的很令人沮丧 我读到的所有内容都表明我需要一个消费者密钥 一个消费者秘密 一个访问密钥和一个访问秘密 例如 使用python OAUTH2访问OAUTH保护的资源 http
  • Foursquare - OAuth 身份验证 - .Net 示例

    是否有关于如何使用 Oauth 向 Foursquare 进行身份验证的示例 这里有一个关于如何将 OAuth 与 Foursquare 结合使用的非常好的工作流程摘要 http developer foursquare com docs
  • 单击关闭按钮后不显示 Google 一键登录 UI

    我正在尝试按照本指南使新的谷歌一键登录工作 https developers google com identity one tap web https developers google com identity one tap web
  • OAuth 同意屏幕未显示

    最近在我的本地开发中实现了 Google 登录 一切工作正常 除了当我选择我的 Google 帐户之一登录时 同意屏幕不会显示 它确实获得了授权 因为我可以在中看到我的网站连接到您帐户的应用程序我的帐户部分 我已经配置好了OAuth 同意屏
  • 如何使用 google.oauth2 python 库?

    我试图对谷歌机器学习项目的安全预测端点进行简单的休息调用 但它找不到 google oauth2 模块 这是我的代码 import urllib2 from google oauth2 import service account Cons
  • 如何编辑范围? // Google Classroom 控制 Google Apps 脚本中学生访问的权限范围

    我是一名高中老师 正在针对 Google Classroom 编写 Google Apps 脚本 我想创建一个类似于学生成绩视图的电子表格 我的学生可以使用他们的凭据进行访问 我已经成功编写了代码 这样我就可以通过在代码中显式放置学生的 I
  • facebook /v2.1/oauth/authorize 不重定向到 /v2.1/dialog/oauth

    我尝试将 canvas app 移至 v2 1 api 因此 当用户授权该应用程序时 我发送 协议 graph facebook com v2 1 oauth authorize client id XXXX scope redirect
  • 通过 PHP CURL 添加 Google 联系人

    我已经成功地通过 Zend Framework 和 PHP 将联系人添加到 google 我也希望能够通过 CURL 来做到这一点 有人有关于如何执行此操作的良好教程吗 我终于能够通过 CURL 和访问令牌来做到这一点 首先 我要说的是OA
  • Google AJAX API - 如何获得 4 个以上结果?

    我使用下面的 google API ajax 来获取特定搜索词的图像 这是在一个WinForms app 下面的链接似乎有效 但它只返回 4 个结果 通过 JSON 有谁知道如何哄得更多吗 显然必须有另一个参数来请求更多或分页结果 但我似乎
  • Google OAuth 2 和状态参数值需要在重定向 url 中注册

    根据 Google Oauth 2 0 文档的状态参数 指示收到响应后可能对您的应用程序有用的任何状态 Google 授权服务器会往返此参数 因此您的应用程序会收到与发送的值相同的值 可能的用途包括将用户重定向到站点中的正确资源 随机数和跨
  • IDX10503:签名验证失败

    应用程序重新启动或发布后 我收到以下带有有效令牌的错误 IDX10503 Signature validation failed Keys tried System IdentityModel Tokens RsaSecurityKey E
  • 禁用或限制 /o/applications(django rest 框架、oauth2)

    我目前正在使用 Django Rest 框架编写 REST API 并使用 oauth2 进行身份验证 使用 django oauth toolkit 我对他们俩都很满意 他们做的正是我想要的 然而 我有一个担忧 我正在将我的应用程序传递到
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 令牌返回后,Google 操作和帐户关联失败

    尝试使用 OAuth2 授权代码流在 Web 模拟器中测试身份验证 https developers google com actions tools web simulator https developers google com ac

随机推荐

  • Android Studio 预览版中“无法解析资源”

    添加新项目后strings xml 通常它们不会立即在 Android Studio 的预览版中开始工作 无法解析资源 string faq customer service 预览看起来像这样 我显然已经尝试重新构建该项目 甚至运行grad
  • 如何强制关闭 Jetpack Compose 的深色模式主题

    我写了一些 Jetpack Compose 演示 但我发现了有关适应深色模式的库错误 因此我想仅在我的应用程序中显示浅色模式 但是当我设置
  • 枚举 Windows 中的线程

    如何在给定进程句柄 或进程 ID 的情况下枚举进程中的所有线程 我有兴趣这样做 所以我可以进一步做枚举线程Windows http msdn microsoft com en us library ms633495 VS 85 aspx在每
  • 不使用 setXXXSize 时使用 JComboBox 的 Swing BoxLayout 问题

    这是一个 SSCCE import java awt Color import java awt Dimension import javax swing Box import javax swing BoxLayout import ja
  • ReactJS componentDidMount + 渲染

    我目前正在使用 React 创建 d3 可视化 我对两者之间的关系有点困惑render and componenetDidMount方法 方法是正确的术语吗 这是我所拥有的 为了简单起见 我排除了一些代码 var Chart React c
  • 在谷歌应用程序脚本中将字符串转换为日期

    我是 GAS 新手 实际上编码也是新手 我得到了 yyyymmdd 格式的日期字符串 例如 20140807 我怎样才能将其转换为日期 以便 Google 应用程序脚本可以识别它 然后我可以进行一些计算 主要是与今天进行比较 如var to
  • 没有与 GCC 内存对齐

    我正在处理一些数据包 我创建了结构来保存数据包数据 这些结构体是由 python 为特定的网络协议生成的 问题是 由于编译器对齐结构 当我通过网络协议发送数据时 消息最终比我想要的要长 这会导致其他设备无法识别该命令 有谁知道可以解决这个问
  • github actions 中的环境变量

    我想将 Maven 图像版本作为 env 变量传递 但是当我尝试访问该 env MAVEN VERSION 变量时出现错误 错误 工作流程无效 github workflows Merge yaml 第 13 行图像 无法识别的命名值 en
  • UINavigationbar 覆盖视图顶部

    我在 xib 文件中设置了一个仅包含一个 UITextView 和一个 UINavigationBar 的视图 当我运行应用程序时 文本的顶部被 UINavigationBar 遮挡 即使我在 IB 中将 UITextView 排列在 UI
  • getResource() 在 Gradle 项目中返回 null

    我知道还有其他几个与此相关的问题 Class getResource 返回 null https stackoverflow com questions 15581687 class getresource returns null Jav
  • Xamarin.Forms - 如何使页面上的元素绝对居中?

    我有一个使用 StackLayout 来显示内容 用户名 密码 登录按钮 的登录页面 用户单击登录按钮后 我希望在页面的绝对中心 现有 StackLayout 内容的顶部设置一个 加载 块 由于某些恼人的原因 这并不简单 这似乎是一件简单
  • 在 PHP 中保护 SQL 查询的最佳方法

    如果我使用 PHP 在 MySQL 数据库上运行查询 如下所示 query SELECT FROM tablename 防止 SQL 注入等问题的最佳方法是什么 我听说过一些转义方法 但是它不会在查询中留下斜杠吗 您在问题中显示的查询不使用
  • 绕过Android隐藏的API限制

    从 Android Pie 开始 对某些隐藏类 方法和字段的访问受到限制 https developer android com distribute best practices develop restrictions non sdk
  • 如何在Python表格中组合/连接表格?

    我一直在玩Pythontabulate找到模块后here https stackoverflow com questions 62876323 python create a box rectangle table outside of a
  • 如何使用 R 中的 grid.arrange 在并排排列的图周围绘制框/边框

    我使用 ggplot 创建了两个图 如下所示 library ggplot2 library gridExtra g1 lt ggplot iris aes Sepal Width Sepal Length geom point g2 lt
  • servlet 的 Servlet.service() [泽西岛 REST 服务] java.lang.NullPointerException

    谁能帮我解决这个问题 这是我第一次创建restful api web xml
  • 如何将异常参数传递给 python unittest 模拟副作用?

    如何传递需要参数作为模拟副作用的异常 我正在尝试测试 boto exception EC2ResponsError 的assertRaises 但得到 TypeError init 在 mock call 中至少需要 3 个参数 给定 1
  • 如何使用 jquery 检查有效性来验证表单

    我正在尝试调试一个片段 以便我可以理解它如何在本机 javascript 验证 checkValidity 中工作 问题是这样的 首先 我创建一个值数组和一个与单击事件连接的表单 jQuery input name submit reque
  • 覆盖默认的 php 函数? (评估)

    我们可以使用以下代码简单地覆盖默认的 php 函数 namespace blarg function time echo test time 但 是否可以覆盖 eval 函数 namespace blarg function eval ec
  • 在 Google API 中检测应用程序的撤销权限

    我正在使用 PHP Google 客户端库 我成功从 user google 获取了令牌并刷新令牌以与 API 一起使用 一旦用户在 Google 页面上的 Google 设置中撤销我的网站的权限 我就会收到以下错误 Error calli