我们最近在我们的应用程序中实现了 Google Drive Picker 功能。api 文档可以在https://developers.google.com/picker/docs/找到
我们的工作流程如下
- 用户点击“从 Google Drive 导入”
- 我们通过 gapi.auth.authorize 对用户进行身份验证,然后打开选择器。
- 用户可以选择他们的文件之一,然后我们将其下载。
我们遇到的问题是 google api 将令牌和相关信息存储在客户端的 cookie 中。如果我们的用户在没有退出 google 的情况下退出了我们的应用程序,那么在同一台机器上工作的另一个用户可以登录到我们的应用程序,单击“从 Google Drive 导入”并显示第一个用户的私人文件。我无权访问这些 cookie,因为它们归 google.com 域所有。
我意识到,从技术上讲,如果第一个用户没有退出 google,那么第二个用户可以访问 google.com 并访问他们的所有信息,包括他们的驱动器文件,但我觉得其中一个不太对劲我们的用户退出我们的应用程序,然后另一个用户稍后代表我们的应用程序访问他们的 Google Drive 文件。
所以我问
- 这只是 OAuth2.0 的副作用,我只需要忍受它吗?
- 或者我可以做些什么来控制选择器使用的令牌,或者在我们的用户注销时撤销访问权限?
旁注:我们在 Dropbox 的选择器上遇到了类似的问题。它只是使用他们与 Dropbox 的会话(不使用 OAuth2.0)。如果用户在没有退出 Dropbox 的情况下退出我们的站点,也会发生同样的事情。我联系了他们的支持,他们说我唯一能做的就是将用户重定向到https://www.dropbox.com/logout,这将使他们完全退出 Dropbox。这也不是很理想...
任何想法将不胜感激。
谢谢!
-亚当