Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么通过env var传递的令牌过期时间不起作用_Node.js_Jwt - Fatal编程技术网

Node.js 为什么通过env var传递的令牌过期时间不起作用

Node.js 为什么通过env var传递的令牌过期时间不起作用,node.js,jwt,Node.js,Jwt,我已经使用JWT创建了nodejsAPI和一个Auth系统。我在我的env中设置了令牌过期,但这样它就不起作用了,我必须在函数中手动写入时间 我的功能是帮助者: // RNV const { Config } = require("../config"); // JWT const jwt = require("jsonwebtoken"); // Token helper module.exports = { getToken: user => jwt.sign(user, C

我已经使用JWT创建了nodejsAPI和一个Auth系统。我在我的env中设置了令牌过期,但这样它就不起作用了,我必须在函数中手动写入时间

我的功能是帮助者:

// RNV
const { Config } = require("../config");
// JWT
const jwt = require("jsonwebtoken");

// Token helper
module.exports = {
    getToken: user => jwt.sign(user, Config.jwt.secret, { expiresIn: <ENV> })
};

它似乎不是这样工作的,我想了解它的原因。

您应该尝试这样的方法:proccess.env.JWT\u

然后,在javascript代码中:

// RNV
const { Config } = require("../config");
// JWT
const jwt = require("jsonwebtoken");

// Token helper
module.exports = {
    getToken: user => jwt.sign(user, Config.jwt.secret, { expiresIn: process.env.JWT_EXPIRE })
};

在我找到问题的解决方案时回答我的问题,也许可以讨论:

因为from ENV是一个字符串,所以我必须将它转换为数字int,因为它接受expiresIn,我使用parseInt来获取正确的内容

// ENV
const { Config } = require("../config");
// JWT
const jwt = require("jsonwebtoken");

// Token helper
module.exports = {
    getToken: user => jwt.sign(user, Config.jwt.secret, { expiresIn: parseInt(Config.jwt.expiration) } )
};

我这样做了,我把60以秒为单位,但出于某种原因,它不能以这种方式工作。您如何设置变量?我的env JWT_EXPIRATION=60中有一个变量,然后我调用process.env.JWT_EXPIRATION在您的命令行中node-e console.logprocess.env的输出是什么?我找到了一个解决方案,因为env中的字符串必须转换为int就像{expiresIn:parseIntConfig.jwt.EXPIRE}一样,它也可以工作:它也可以转换为字符串,即.env=>jwt_EXPIRE=12h,然后``module.exports={getToken:user=>jwt.signuser,Config.jwt.secret,{expiresIn:Stringprocess.env.jwt_EXPIRE}```
// ENV
const { Config } = require("../config");
// JWT
const jwt = require("jsonwebtoken");

// Token helper
module.exports = {
    getToken: user => jwt.sign(user, Config.jwt.secret, { expiresIn: parseInt(Config.jwt.expiration) } )
};