繁体   English   中英

如何从 JSON 文件访问环境变量?

[英]How to access environment variables from JSON file?

我在我的 nextjs 应用程序中使用 firebase 身份验证。 我已将我的服务帐户凭据存储在名为 secret.json 的文件中。 我想在我的 next.config.js 文件中隐藏这些凭据。 如何访问 secret.json 文件中的这些凭据? 也许这不仅适用于 nextjs 应用程序,也适用于其他应用程序。 实现这一目标的常用方法是什么,或者 nextjs 应用程序有什么特定方法?

您可能会考虑将您的私钥存储为环境变量,Next.js 已内置支持 然后,您可以避免在next.config.js中暴露您的秘密的风险,并且 Heroku 和Vercel等服务可以让您在生产环境中轻松安全地存储环境变量。

要在您的服务器上初始化 Firebase,您只需要从您的secret.json文件中获取 3 个东西:

  • project_id
  • client_email
  • private_key - 将其存储为环境变量(例如,FIRESTORE_PRIVATE_KEY)

然后,您可以使用 firebase -admin package 在您的服务器上初始化 Firebase:

import { cert, initializeApp } from 'firebase-admin/app'

const serviceAccount = {
  projectId: 'my-project',
  clientEmail: 'myServiceAccount@my-project.iam.gserviceaccount.com',
  privateKey: process.env.FIRESTORE_PRIVATE_KEY,
}

const credential = cert(serviceAccount)

initializeApp({ credential })    

private_key保存为自己的 env var 还可以避免由于尝试将整个 Firestore json 保存/解析为 env var(例如, ENAMETOOLONG错误)而产生的问题,并且不需要您进行任何字符串操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM