Oauth 在Google API中检测应用程序被吊销的权限
我正在使用PHP谷歌客户端库。我成功地从user/google获得了一个令牌并刷新令牌,以便与API一起使用。 一旦用户在谷歌页面上的谷歌设置中撤销对我的网站的权限,我就会收到以下错误:Oauth 在Google API中检测应用程序被吊销的权限,oauth,oauth-2.0,google-api,google-oauth,google-api-client,Oauth,Oauth 2.0,Google Api,Google Oauth,Google Api Client,我正在使用PHP谷歌客户端库。我成功地从user/google获得了一个令牌并刷新令牌,以便与API一起使用。 一旦用户在谷歌页面上的谷歌设置中撤销对我的网站的权限,我就会收到以下错误: Error calling GET https://www.googleapis.com/calendar/v3/users/me/calendarList: (401) Invalid Credentials 这是用户吊销我的权限后的预期行为。 但是,如何检测到用户撤销了该访问 目前,我执行以下操作以查看是
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应该只在没有授权的情况下返回401。因为您以前有过授权,所以收到401是用户已撤销访问权限的可靠指示
您是否正在寻找一种在进行API调用之前通知您此类更改的检测机制?今天,谷歌还没有一个推送通知机制可以通知你的应用程序这些事件。当然,基于拉的机制是没有用的——您可以简单地进行API调用并更有效地处理401。一旦检测到用户已撤销权限,您可以要求用户再次授予权限 要检测授权是否已被撤销:如果您以前有过授权,
- 使用已撤销的
access\u令牌进行API调用将导致状态代码为401的响应。像这样
{ “错误”:{ “错误”:[ { “域”:“全局”, “原因”:“authError”, “消息”:“无效凭据”, “位置类型”:“标题”, “位置”:“授权” } ], “代码”:401, “消息”:“无效凭据” } }
- 在撤销后尝试刷新令牌将导致一个带有400状态代码和
消息的响应。正如合同中规定的那样 提供的授权授权无效(例如授权 代码、资源所有者凭据)或刷新令牌无效 无效、过期、吊销,与重定向不匹配 在授权请求中使用的URI,或已颁发给 另一个客户 以下是此类响应的一个示例:invalid\u grant
{ “错误”:“无效的授权” }