Почему время действия токена прошло через env var не работает - PullRequest
0 голосов
/ 13 февраля 2020

Я создал NodeJS API и систему аутентификации с использованием JWT. Я установил срок действия токена в моем 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> })
};

Кажется не работать таким образом, и я хотел бы понять причину этого.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Отвечая на мой вопрос, когда я нашел решение своей проблемы и, возможно, его можно обсудить :)

Поскольку в ENV есть строка, мне пришлось преобразовать ее в число int, поскольку оно принимает ее * 1003. * и я использовал parseInt(<env string>), чтобы получить правильную вещь на самом деле

// 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) } )
};
0 голосов
/ 13 февраля 2020

Вы должны попробовать что-то вроде этого: proccess.env.JWT_EXPIRE.

// You env variable    
JWT_EXPIRE=12h

Затем в вашем 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 })
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...