I am quite new to Node JS, I have some problem to retrieve the accessToken from the generateAccessToken method when it called from the login exports function. After I compile the code, it shows an undefined value in the console log.
I have attempted to add async on the generateAccessToken and the export function but both of them are not working. I have validated the accessToken can be printed within the generateAccessToken function.
exports.generateAccessToken = function(req,res) {
const user = {
username: req.body.username
};
const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '15s' });
User.update({ access_token: accessToken }, { where: { username: user.username } }).then((resp) => {
//console.log(resp);
if (resp != 1) {
res.status(403).send({ error: "Failed to update access token" });
}
return accessToken;
}).catch((err) => {
res.status(500).send({ error: err.message });
});
}
exports.login = function (req, res) {
const username = req.body.username;
const accessToken = module.exports.generateAccessToken(req,res);
console.log(accessToken); //return undefined value here.
const refreshToken = generateRefreshToken(username);
return res.status(200).send({ message: "You have successfully login!", refreshToken: refreshToken, accessToken: accessToken });
}
Update:
exports.generateAccessToken = function(req,res) {
const user = {
username: req.body.username
};
const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '15s' });
User.update({ access_token: accessToken }, { where: { username: user.username } }).then((resp) => {
console.log(resp);
if (resp != 1) {
res.status(403).send({ error: "Failed to update access token" });
}
}).catch((err) => {
res.status(500).send({ error: err.message });
});
return accessToken;
}
exports.login = async function (req, res) {
const username = req.body.username;
const accessToken = await module.exports.generateAccessToken(req,res);
const refreshToken = generateRefreshToken(username);
return res.status(200).send({ message: "You have successfully login!", refreshToken: refreshToken, accessToken: accessToken });
}