我正在使用 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(使用前将#替换为@)