问题描述
我们需要将我们的服务与 Google 相册集成,从而让用户可以从我们网站内的 Google 相册中选择图片。到目前为止,我的理解是,为了让图像在我们端可供用户选择,他必须通过 OAuth UI 明确批准这一点(如果我错了,请纠正我)。
他批准后,我们会得到刷新令牌,可以生成访问令牌供我们使用。
我的问题如下:
是否有可能用户只做一次 OAuth UI 批准的操作,然后我们可以使用该令牌而无需打扰用户再次批准?
这些代币的存活时间是什么时候?是否有可能获得不会过期的令牌?因为查看 Facebook API,短期令牌会在 2 小时后过期,而长期令牌会在 2 个月后过期。
基本上我们的用例如下:
我们让用户将 Google 相册连接到我们的网站,他可以将这些照片用于多个用例。为了让我们呈现完整的照片,我们需要通过 id 引用该图像并调用 Google 照片 API 来下载图像并在我们的网站上呈现它。我正在考虑的另一个选项是 - 存储我们最初在用户进行 OAuth 手动批准时需要的图像的 baseUrl
,因此之后不需要批准,因为我们的服务仅作为后端并且提供服务到服务的通信。
提前致谢并致以最诚挚的问候
解决方法
您是对的,您需要使用 Oauth2 来请求访问用户数据。这会给你一个刷新令牌。
刷新令牌大部分不会过期。只要用户不直接通过他们的 Google 帐户删除您的访问权限,并且只要您至少每六个月使用一次刷新令牌,您就可以继续使用。但是,您的代码应该能够处理无效的刷新令牌,然后在用户下次访问时询问用户。