【发布时间】:2018-12-18 16:10:13
【问题描述】:
长话短说,我开发了一个浏览器扩展程序,其中用户通过第三方文件主机进行身份验证以用作后端存储(目前只有 Dropbox 和 Google Drive)。当扩展程序调用 /tokeninfo 时,我的一些用户报告 400 错误,此时应用程序被破坏,迫使他们重新进行身份验证。现在我终于成功地重现了这个问题-
如果用户在两个或多个浏览器中使用 Google Drive 安装并验证此扩展程序,仅从其中一个浏览器撤消单个访问令牌会导致其所有其他访问/刷新令牌对应用程序无效。。 Dropbox 不会出现此问题。
这表明:
1) 我对 Google 的 /revoke 端点的理解是错误的,撤销一个令牌总是会撤销对整个应用程序的访问权限
2) Google 对 OAuth 的 revoke 方法的实现是不正确的,不应撤销来自额外令牌的访问权限
3) Dropbox 对 OAuth 的 revoke 方法的实现不正确,应该撤销所有附加令牌的访问权限
我在 Google 的一个问题跟踪器上recently filed a report,但不幸的是,它似乎是一个不活跃的社区,我还没有收到任何反馈。
一种潜在的解决方法可能是让令牌自行过期,但我认为这会产生误导和安全问题,因为用户可能希望在从 Google 云端硬盘取消链接扩展程序时访问凭据会立即失效。
任何见解都将不胜感激!
【问题讨论】:
标签: oauth google-oauth