2

我的 Node.JS .env 中有一些环境变量,包括 AUTH0_CLIENT_ID 和 AUTH0_CLIENT_SECRET。

我通过以下方式向客户端添加了 auth0 支持:

var jwt = require('express-jwt');
var authenticate = jwt({
  secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
  audience: process.env.AUTH0_CLIENT_ID
});

当使用 $node Experiment.js 或从 npm 运行我的实验时 [在 package.json 中的脚本中添加了相应的条目后,我收到一个错误:

buffer.js:139
throw new TypeError('must start with number, buffer, array or string');

我的猜测是环境变量没有被拾取。我做错了什么,或/和我应该检查什么?

4

1 回答 1

2

您将它们放在文件中的事实并不意味着它们已被加载。您需要将它们传递给 NodeJS。要么使用一些包来管理配置文件和环境变量(nconfdotenv),要么在运行服务时直接传递它(这更好,因为出于安全原因,不应将机密保存在任何类型的文件中)。如果您选择第二个,它几乎取决于您正在运行的系统。如果您使用 Windows,您应该首先设置环境变量(在 cmd 中):

set AUTH0_CLIENT_SECRET=test
node app.js

在基于 Unix 的系统上,您可以直接传递它:

AUTH0_CLIENT_SECRET=test node app.js

希望有帮助:)

于 2015-12-15T07:45:45.167 回答