如何使用部署到Netlify的无服务器Lambda函数隐藏条带密钥

时间:2019-07-02 06:41:09

标签: lambda stripe-payments netlify

我正在使用无服务器lambda函数来运行Stripe付款。它在本地主机上运行良好,但是当我部署到netlify时它不起作用。我收到400错误。

我遵循了本教程,但是随后将charge.js更改为使用dotenv https://mitchgavan.com/react-serverless-shop/

在我的服务器功能中,我有以下内容……

require(‘dotenv’).config()
const stripe = require(‘stripe’)(process.env.STRIPE_SECRET_KEY);

我有一个带有SK的.env文件,并且在localhost上运行时可以工作。但是当我部署时它不起作用。

我已在Netlify的仪表板中添加了SK

STRIPE_SECRET_KEY      sk_test_opK…sIKZ

但这对我不起作用,我在做什么错了?

1 个答案:

答案 0 :(得分:0)

执行lambda函数时,很有可能不存在依赖项dotenv,因为您没有将其打包到函数中。

使用Netlify的仪表板存储私钥时,您将没有.env。这是个好消息,因为您不想将该密钥存储在存储库中。仅在您的情况下才需要进行本地开发。

  • 从您的函数中删除require('dotenv').config(),因为在这种情况下,在Netlify上不需要使用process.env.STRIPE_SECRET_KEY,因为在函数执行时cross-env将在Netlify上存在。
  • 在本地开发期间以不同的过程添加密钥(也许在命令行中使用someMethod(...)