32 lines
859 B
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" });
|
|
}
|
|
};
|