【问题标题】:Can I use single Google API credential for multiple deployed microservices for same user on different instances?我可以为不同实例上的同一用户的多个部署的微服务使用单个 Google API 凭据吗?
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 感谢@Martin,但服务帐户基础方法存在问题,例如当任何用户打开文件时,它将将该文件存储到服务帐户用户的驱动器中。我们有与文件相关的安全问题,因此我们只需将该文件存储到已登录用户的谷歌驱动器中。
    • 还有其他方法吗?
    猜你喜欢
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多