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 ) を管理するためにいくつかのパッケージを使用するか、サービスを実行するときにそれを直接渡します (セキュリティ上の理由から、シークレットはどのような種類のファイルにも保存されるべきではないため、より良い方法です)。2番目を選択した場合、実行しているシステムに大きく依存します。Windows を使用している場合は、最初に環境変数を (cmd で) 設定する必要があります。

set AUTH0_CLIENT_SECRET=test
node app.js

Unix ベースのシステムでは、直接渡すことができます:

AUTH0_CLIENT_SECRET=test node app.js

それが役立つことを願っています:)

于 2015-12-15T07:45:45.167 に答える