Oauth 2.0 在哪里可以检查google oauth 2.0 access_令牌是否有效?

Oauth 2.0 在哪里可以检查google oauth 2.0 access_令牌是否有效?,oauth-2.0,google-oauth,Oauth 2.0,Google Oauth,我正在为一个应用程序开发一个安全模块,使用google的oauth 2.0访问令牌,使用本文“获取oauth 2.0访问令牌”一节中的建议: 我正在存储作为上述文章“步骤5:为刷新和访问令牌交换授权代码”中步骤5的一部分接收的访问令牌 假设用户访问浏览器中的任何google web应用并注销,我知道google的会话在该点无效,这很好,这就是生成我存储的access_令牌的会话,然后,假设在那一刻,用户登录到我的应用程序,我的应用程序会话过期,那么问题是,如果我的应用程序会话过期,用户转到我的应

我正在为一个应用程序开发一个安全模块,使用google的oauth 2.0访问令牌,使用本文“获取oauth 2.0访问令牌”一节中的建议:

我正在存储作为上述文章“步骤5:为刷新和访问令牌交换授权代码”中步骤5的一部分接收的访问令牌

假设用户访问浏览器中的任何google web应用并注销,我知道google的会话在该点无效,这很好,这就是生成我存储的access_令牌的会话,然后,假设在那一刻,用户登录到我的应用程序,我的应用程序会话过期,那么问题是,如果我的应用程序会话过期,用户转到我的应用程序,我的应用程序将尝试验证访问令牌(只要谷歌会话还活着,我想保持我的应用程序会话在某种程度上与谷歌会话保持一致)但这项服务并不能从中间反映出我在我的应用程序中拥有的访问令牌无效,它需要花费很多分钟来反映用户已注销,并且访问令牌无效

请原谅我冗长的解释,我希望它是清楚的


现在我的问题是,什么google rest/service为访问令牌提供了更好的验证?

我认为您有一个错误的假设,即访问令牌(和刷新令牌)绑定到验证用户时使用的会话。我试图找到一些关于它的信息,但没有成功。可能有多个会话-例如在不同的浏览器中。如果您在一个浏览器中注销,另一个浏览器将保持登录状态,因此可能不会有“全局注销”终止用户的所有会话

如果令牌在浏览器会话注销时失效,则会使使用令牌的应用程序变得脆弱。例如,移动或桌面应用程序仅使用浏览器进行身份验证,而不使用浏览器在成功身份验证后保持浏览器窗口打开,因此无法保持浏览器会话处于活动状态。他们的令牌将随着会话过期而失效


Google似乎没有在其中提供功能,因此您也无法使用iFrame监控会话(如中所述)。

我认为您有一个错误的假设,即访问令牌(和刷新令牌)绑定到验证用户时使用的会话。我试图找到一些关于它的信息,但没有成功。可能有多个会话-例如在不同的浏览器中。如果您在一个浏览器中注销,另一个浏览器将保持登录状态,因此可能不会有“全局注销”终止用户的所有会话

如果令牌在浏览器会话注销时失效,则会使使用令牌的应用程序变得脆弱。例如,移动或桌面应用程序仅使用浏览器进行身份验证,而不使用浏览器在成功身份验证后保持浏览器窗口打开,因此无法保持浏览器会话处于活动状态。他们的令牌将随着会话过期而失效


Google似乎没有在其中提供功能,因此您也无法使用iFrame监控会话(如中所述)。

可能重复的请按照链接中的说明进行操作:可能重复的请按照链接中的说明进行操作:Jan,如果您想进行此测试。创建一个使用google oauth 2.0进行身份验证的简单web应用程序,并将应用程序的会话生存时间设置为5分钟。使用谷歌的oauth 2.0登录你的应用程序。然后转到你的谷歌帐户并注销。完成此操作后,然后使用生成的访问令牌对此服务执行一些get请求,几分钟后,您会注意到您在该会话中生成的访问令牌不再有效。@anyei,Jan是正确的。访问令牌未绑定到用户用来对自己进行身份验证的会话。我怀疑您看到的只是访问令牌在1小时后过期。你需要重新考虑你的安全模型。我明白了,那就太可悲了。。我正在评估几个oauth 2.0验证器提供商,到目前为止,facebook提供了一种验证确切场景的方法,例如执行GET graph.facebook.com/debug_token?input_token={token to inspect}&access_token={app token或admin token}我可以得到一个带有属性“is_valid”的json,该属性告诉我所评估的访问令牌是否有效,此外,它还告诉我令牌无效的原因。为了进一步解释,这里有一个facebook令牌调试响应的示例:{app_id=myappid,application=myapplabel,error={code=190,message=error validating access token:session无效,因为用户注销,subcode=467},过期时间为1500998400,是有效的=false,scopes=(public_profile),user_id=fbuserid}jan,pinoyid谢谢你的回答,我肯定会至少为谷歌的api改变方法(实际上到目前为止,linkedin也有相同的场景tho,到目前为止,我审查过的oauth提供商中,只有facebook具有这种“令牌验证”功能)Jan,如果你想做这个测试。创建一个使用google oauth 2.0进行身份验证的简单web应用程序,并将你的应用程序的会话生存时间设置为5分钟。使用google oauth 2.0登录你的应用程序。然后转到你的google帐户并注销。完成后,使用生成的访问令牌对此服务执行一些get请求,你将I’我会注意到,几分钟后,您在该会话中生成的访问令牌不再有效。@anyei,Jan是正确的。访问令牌未绑定到用户用来验证自己的会话。我怀疑您看到的只是访问令牌在1小时后过期。您需要重新考虑您的安全模型。我明白了,t很遗憾,我正在评估几个oauth 2.0认证器提供商,到目前为止,facebook提供了一个