gpt4 book ai didi

oauth - 在 Google API 中检测已撤销的 App 权限

转载 作者:行者123 更新时间:2023-12-02 00:00:34 26 4
gpt4 key购买 nike

我正在使用 PHP Google 客户端库。我成功地从用户/谷歌获取 token 和刷新 token 以与 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"
    }
    }
  • 在撤销后尝试刷新 token 将导致响应 400 状态代码和 invalid_grant信息。正如 RFC 6749, Section 5.2 中指定的那样

  • invalid_grant The provided authorization grant (e.g., authorizationcode, resource owner credentials) or refresh token isinvalid, expired, revoked, does not match the redirectionURI used in the authorization request, or was issued toanother client.


    以下是此类响应的示例:
    ```lang-js
    {
    "error" : "invalid_grant"
    }
    ```

    关于oauth - 在 Google API 中检测已撤销的 App 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618275/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com