使用 rest API 进行本地服务器到 Google Cloud 的身份验证

使用 rest API 进行本地服务器到 Google Cloud 的身份验证

我们计划在 Google Cloud 上托管一个主题(发布/订阅),并创建了一个主题和客户服务帐户。

现在我必须连接到主题并发布消息。我试图在发布消息之前进行身份验证。但找不到适合我的场景“使用 rest API 从本地服务器到 Google Cloud 身份验证”的方法。

如果有适用于此方法的任何方法,请帮助我。

这是我正在使用的代码,但它给出的是浏览器重定向响应而不是访问令牌。请查看下面的代码并响应

 private static Credential authorize() throws Exception {

      HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();

      GoogleClientSecrets clientSecrets  = JSON_FACTORY.fromReader(new InputStreamReader(new FileInputStream(new File(KEY_FILE_LOCATION))), GoogleClientSecrets.class);       

      if (clientSecrets.getDetails().getClientId().startsWith("Enter")
                || clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
              System.out.println("Enter Client ID and Secret in client_secrets.json");
              System.exit(1);
            }


      GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
          httpTransport, JSON_FACTORY, clientSecrets,
          Collections.singleton(PubsubScopes.PUBSUB)).build();

      return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize(SERVICE_ACCOUNT_EMAIL);
    }


Please open the following address in your browser:

https://accounts.google.com/o/oauth2/auth?client_id=1164246778127&redirect_uri=http://localhost:53869/Callback&response_type=code&scope=https://www.googleapis.com/auth/pubsub

答案1

您所需要的只是服务帐户的 JSON 密钥文件。查看文档了解如何使用此功能(使用GOOGLE_APPLICATION_CREDENTIALS环境变量的应用程序默认凭据)。

相关内容