node.js - 通过 Heroku 安全地使用 Google 服务帐户

标签 node.js heroku google-cloud-platform

我正在尝试将 Google Cloud Vision API 与 Node 结合使用,并在 Heroku 上运行该应用程序。非常接近这个例子的东西:

https://github.com/googleapis/nodejs-vision

但是,Google API 想要通过读取包含服务帐户的文件来进行身份验证,并且使用环境变量读取文件的位置。有没有办法使用 Heroku 安全地存储此文件,或者以某种方式利用 Heroku Config Vars?

最佳答案

NodeJS Google Auth Library 的文档实际上在 how to load credentials from environment variables 上提供了一个完整的例子.具体来说,它说在使用类 Heroku 系统时推荐使用这种方法,所以我认为你绝对应该看看它。

使用以下格式下载服务帐户的凭据后,您可以按照以下步骤使用它们:

  1. 使用 process.env['NAME_OF_YOUR_ENV_VAR']; 加载环境变量
  2. 使用 JSON.parse(keysVar); 将变量解析为 JSON
  3. 使用 GoogleAuth.fromJSON() 方法通过 key 授权请求。

凭证格式:

$ export CREDS='{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "your-private-key-id",
  "private_key": "your-private-key",
  "client_email": "your-client-email",
  "client_id": "your-client-id",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "your-cert-url"
}'

您可以在我在第二个链接中共享的 Google Auth 文档中找到有关如何使用它们的更详细示例(或者也直接在 this example file 中),因此请随意根据您的用例进行调整。

关于node.js - 通过 Heroku 安全地使用 Google 服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49664844/

相关文章:

javascript - 中继生成的突变查询缺少某些字段

ruby - Heroku 上 Rack::Static 应用程序的 HTTP 基本身份验证

ubuntu - 在 ubuntu 10.10 上安装 herouku

docker - 如何使用容器入口点参数调用 gcloud 计算实例 create-with-container

php - 从 PHP 运行 gcloud 命令

node.js - nodejs 中的 ORM Bookshelf + postgresql 或 MongoDB 数据库?

node.js - NodeJS 的 Kdb+ 驱动程序

ruby-on-rails - 为 Heroku Rails 应用实现 OCR

firebase - 如何取消 Google 云平台项目与 Firebase 的链接

javascript - 为什么它有效 -> key : 'hey' ->'hey' and doesnt throw any error?