【发布时间】:2018-10-10 13:31:19
【问题描述】:
Application1 -> Microservice1(部署在一台服务器上,db也是独立的)
Application2 -> Microservice2(部署在其他服务器上,db也是独立的)
注意:对于 Microservice1 和 Microservice2,我们使用相同的 Google API 凭据。
我们有一个应用程序,我们提供用户使用在线编辑器编辑它的 word、ppt、excel 文件。
所以,我们已经配置了使用 GSuite API 的微服务,供用户使用谷歌在线文字编辑器编辑那里的文件。
现在,我们有一个场景,比如当一个用户从 Application1 打开文件时,我们的应用程序会将用户重定向到谷歌登录屏幕,一旦用户输入它的凭据,谷歌就会检查第三方应用程序是否已经注册了登录用户帐户,如果没有,则 google 将给出同意屏幕以向当前用户注册第三方应用程序。
一旦用户允许第三方应用,谷歌就会将用户重定向到我们的微服务1 一旦回调到达我们的微服务,我们就会将用户的刷新令牌存储到我们的数据库中,用户可以在线编辑文档。
现在,用户从 Application2 打开文件,它会将用户重定向到谷歌登录屏幕,一旦用户输入了他在上面使用的相同凭据,那么谷歌将检查第三方应用程序是否已经注册了登录用户帐户,这个时间谷歌发现第三方应用程序已经向他们注册,谷歌将用户重定向到微服务2,但这次谷歌没有提供刷新令牌,在我们的数据库中也没有刷新令牌条目,所以我们将无法在在线编辑器中打开文件。
那么,有没有办法只用一个 Google API 凭据来处理这种情况?
或者我们需要单独的帐户来为我们提供不同的 Google API 凭据?
喜欢:
微服务1(一个具有 Google API 凭据的 Google 帐户)
微服务 2(另一个具有 Google API 凭据的 Google 帐户)
任何形式的帮助表示赞赏。
提前致谢...
【问题讨论】:
标签: google-api google-drive-api google-workspace