32 lines
859 B

import Users from "../models/userModel.js";
import jwt from "jsonwebtoken";
export const refreshToken = async (req, res) => {
try {
const refreshToken = req.cookies.refreshToken;
if (!refreshToken) return res.sendStatus(401);
const user = await Users.findOne({
where: { refresh_token: refreshToken },
});
if (!user) return res.sendStatus(403);
jwt.verify(
refreshToken,
process.env.REFRESH_TOKEN_SECRET,
(err, decoded) => {
if (err) return res.sendStatus(403);
const accessToken = jwt.sign(
{ userId: user.id, name: user.name, email: user.email },
process.env.ACCESS_TOKEN_SECRET,
{ expiresIn: "20s" }
);
res.json({ accessToken });
}
);
} catch (error) {
res.status(500).json({ msg: "Terjadi kesalahan pada server" });
}
};