我已将Google Drive UI与我的网络应用程序集成。当用户选择使用我的应用在云端硬盘中创建新文件时,会将其发送到
https://[mysite]?state={"folderId": "...", "action": "create", "userId":"..."}
我在浏览器中登录了多个Google帐户(A和B)。
帐户A选择创建文件,并在网址中以"userId": "[A's user id]"
发送到我的应用。
然而,使用gapi.auth2
JS库:
authInstance.signIn()
// Listen for sign in, and then:
authInstance.currentUser.get().getAuthResponse().access_token
返回帐户B的访问令牌。
当我尝试在folderId
中创建一个只能由帐户A访问的文件时,会导致404错误。
我的应用如何通过Google进行身份验证,作为选择创建文件的特定userId
?
Drive UI Integration的文档似乎没有涉及此问题,而且Google Sign-In for Websites的文档没有(据我所知)提供了一种指定我要登录的帐户的方法with(除了通过&#34这样的广泛过滤器;使用特定的G Suite域")。
更新:HTTP Google OAuth docs允许客户指定login_hint
,这是" email address
或sub
标识符&# 34; - 并不完全清楚" sub
标识符"是。奇怪的是,Javascript API docs暗示login_hint
是一个响应参数,而不是我可以设置的。
更新2 userId
是一个不透明的Google提供的整数值,我无法识别。我的应用程序,包括Drive上传,在JS中是完全客户端的,没有长期数据存储。