Oauth 有没有办法将客户端和服务器端的Google API认证结合起来?

Oauth 有没有办法将客户端和服务器端的Google API认证结合起来?,oauth,google-api,Oauth,Google Api,目前我正在实现一个Ionic应用程序,前端在移动设备上,后端在服务器上。(因此设备和服务器之间存在连接延迟),我的应用程序通过连接到谷歌API使用谷歌服务(如Gmail、日历等) 目前的架构是: 设备服务器谷歌API 这是使用OAuth 2.0服务器端身份验证。它可以工作,但连接延迟太长,感觉就像回到拨号上网的时候 我尝试使用OAuth 2.0客户端身份验证,即: 设备谷歌API 这速度更快,但有两个问题: 即使Ionic将前端代码打包到应用程序中,我仍然担心“前端中的所有内容对每个人都可见”的

目前我正在实现一个Ionic应用程序,前端在移动设备上,后端在服务器上。(因此设备和服务器之间存在连接延迟),我的应用程序通过连接到谷歌API使用谷歌服务(如Gmail、日历等)

  • 目前的架构是:

    设备服务器谷歌API

    这是使用OAuth 2.0服务器端身份验证。它可以工作,但连接延迟太长,感觉就像回到拨号上网的时候

  • 我尝试使用OAuth 2.0客户端身份验证,即:

    设备谷歌API

    这速度更快,但有两个问题:

  • 即使Ionic将前端代码打包到应用程序中,我仍然担心“前端中的所有内容对每个人都可见”的规则仍然存在。(未找到证据证明或否定该假设)
  • GoogleAPI OAuth2.0只向客户端身份验证发出流,并且流经常过期,我不希望用户一次又一次地授予权限
  • 因此,我想知道是否有可能做到以下几点:

    • 使用服务器端身份验证存储密钥/凭据(我使用Django作为后端,即Python),前端从服务器获取密钥/凭据,并使用JavaScript代码继续Google服务

    我知道派对已经晚了,但我现在正在经历这一切。我认为有两种方法可以实现这一点,但都不是完美的

  • 使用服务器端流来授权服务器或客户端上需要的所有作用域。获得令牌后,将其传递给客户。不利的一面是,客户机现在有一个令牌,可以访问比需要更多的API
  • 为客户端和服务器创建单独的授权流。这意味着用户有2个授权提示,这是不好的。这种方法的好处是可以确保客户端的作用域有限,但服务器仍然可以处理更大的任务(移动驱动器文件、发送电子邮件等)
  • 在我的例子中,客户端只需要对Contacts API进行读取访问,而服务器需要完全访问驱动器


    如果有人找到一种组合方法,即只需要一个授权,但客户端和服务器有单独的作用域,那将是理想的情况。

    有人能给我一个建议吗?会感激的