3

我尝试在 flowground 连接器实现中使用带有 JSON Web 令牌的“google-api-nodejs-client”( https://github.com/googleapis/google-api-nodejs-client )。是否有可能让环境变量“GOOGLE_APPLICATION_CREDENTIALS”指向用户可以上传到流中的可配置 JWT 文件?

图书馆页面的客户端使用示例:

// This method looks for the GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS
// environment variables.
const auth = new google.auth.GoogleAuth({
    scopes: ['https://www.googleapis.com/auth/cloud-platform']
});
4

2 回答 2

1

您可以在连接器的“ENV vars”页面上的 flowground 中设置环境变量:

在此处输入图像描述

于 2019-11-25T09:32:42.360 回答
1

让我们看看我是否正确理解你想要做什么:

  • 创建一个可以从外部触发并通过 google-api-nodejs-client 模块访问任何 Google API 的流程。
  • 每次触发流程时,您都会发布有效的 JWT 以访问任何 Google API
  • 您想将 JWT 存储在本地文件系统中;提到的环境变量包含持久化 JWT 的路径。

一般来说,这是目前有效的方法。
您可以在本地文件系统中创建一个文件:
fs.writeFile(process.env.HOME + '/jwt.token', ...)
Sebastian 已经解释了如何定义所需的环境变量。
请记住,写入和读取 JWT 文件必须在流程执行的同一步骤中进行。执行完此步骤后,此文件不再存在。

为什么这只是目前有效的方法?
我假设我们将在不久的将来阻止写入本地文件系统。这也将阻止所描述的解决方案。
从我的角度来看,更好的解决方案是使用内置的 OAuth2机制
有关此方法的更多信息

于 2019-11-26T18:53:38.317 回答