如何在C ++谷歌云存储客户端库中创建不带json的gcs :: Client?

时间:2018-12-21 13:29:44

标签: google-cloud-platform google-cloud-storage

我需要在Google云存储中“以最终用户身份进行身份验证”(我代表我的应用程序的最终用户访问资源)。由于我的应用程序是用C ++编写的。我编译了C ++ Google Cloud Storage客户端库。但是here声明它需要客户端的JSON文件才能创建gcs :: Client对象。我找不到其他方法来创建带有项目ID,服务电子邮件,私钥,密钥名称和存储桶名称等信息的客户端(这些信息足以在python中进行身份验证)。是否可以通过google cloud storage c ++客户端库中的上述信息对最终用户进行身份验证?

2 个答案:

答案 0 :(得分:1)

在Google Cloud中,三种凭证类型:

  • API密钥。
  • 服务帐户凭据。
  • 用户凭据(OAuth 2.0)。

API密钥不适用于您的用例。这些凭据用于不需要身份的Google服务。

您要引用的示例代码使用(需要)服务帐户凭据,这些凭据存储为Json文件。这是认证和授权软件应用程序的标准方法。

如果您的目标是让用户使用其Google帐户进行授权,并在软件中使用OAuth 2.0令牌来访问Google云端存储,那么也可以这样做。您将需要在应用程序中实现Google OAuth 2.0 Flow,这将为用户启动浏览器。 Google将使用OAuth令牌回调到您的代码。

C++ Using OAuth 2.0

建议:如果您以前没有对OAuth 2.0进行任何开发,那么我不会以C ++开始Google OAuth 2.0的开发。使用Python之类的语言提供大量示例,以便您了解OAuth的工作方式。

答案 1 :(得分:0)

当您说您正在“作为最终用户进行身份验证”时,是否表示该用户将在Google Cloud Platform中拥有一个帐户,并且您打算使用其凭据(可能是通过OAuth来访问Google Cloud Storage?很抱歉,我们尚未在google-cloud-cpp中实现对该工作流程的支持。

我提交了a bug进行跟踪,请随时在此处添加其他问题或建议。