0

从我的应用程序中,我必须调用使用谷歌身份验证的外部 http 服务。当我从浏览器调用它时它可以工作。我发现它发生是因为我有 cookie 包含

GCP_IAAP_AUTH_TOKEN_<random_string>
GCP_IAP_UID 

所以我的cookie看起来像这样:

cookie:    GCP_IAP_UID=111111111111; GCP_IAAP_AUTH_TOKEN_1234567891234567890B=verylongstringhere"

我尝试直接在我的 restTemplate 中设置这个 cookie,它可以正常工作,但我希望我必须根据某种凭据获取令牌。

webClient.post()
         .uri(uploadUrl)                    
         .header("cookie", "GCP_IAP_UID=12345678901234567890; GCP_IAAP_AUTH_TOKEN_12345678907645456546B=verylongstringhere")

您能否提供正确使用 GCP auth 的示例?如何更新令牌?基于什么?

4

1 回答 1

1

Google API 使用 OAuth 2.0 协议进行身份验证和授权

您可以从 Google API 控制台获取 OAuth 2.0 客户端凭据。然后,您的客户端应用程序从 Google 授权服务器请求访问令牌,从响应中提取令牌,并将令牌发送到您要访问的 Google API。

在您的应用程序可以使用 Google API 访问私有数据之前,它必须获得一个访问令牌来授予对该 API 的访问权限。

有几种方法可以提出这个请求,它们会根据您正在构建的应用程序的类型而有所不同。例如,JavaScript 应用程序可能使用浏览器重定向到 Google 请求访问令牌,而安装在没有浏览器的设备上的应用程序使用 Web 服务请求。

我建议您通过OAuth 2.0 访问 Google APIs文章来为您的应用程序选择最佳方法,有几个文档化的场景来解释 GCP 如何使用应用程序身份验证

于 2019-11-20T19:38:37.730 回答