update
This commit is contained in:
@@ -15,6 +15,8 @@ const {
|
|||||||
checkEmailTaken,
|
checkEmailTaken,
|
||||||
validateUserToken,
|
validateUserToken,
|
||||||
hashPass,
|
hashPass,
|
||||||
|
generateRefreshToken,
|
||||||
|
validateRefreshToken,
|
||||||
} = require("../services/services.js");
|
} = require("../services/services.js");
|
||||||
const { resetPassword } = require("../services/mailServices.js");
|
const { resetPassword } = require("../services/mailServices.js");
|
||||||
|
|
||||||
@@ -30,12 +32,23 @@ router.post("/login", async (req, res) => {
|
|||||||
await checkPassword(req.body.password, user.password);
|
await checkPassword(req.body.password, user.password);
|
||||||
const safeUser = await prepareSafeUser(user);
|
const safeUser = await prepareSafeUser(user);
|
||||||
var token = generateAuthToken(safeUser);
|
var token = generateAuthToken(safeUser);
|
||||||
res.header("x-auth-token", token).status(202).send(safeUser);
|
var refreshToken = generateRefreshToken(user._id);
|
||||||
|
res.header("x-auth-token", token).header("ref", refreshToken).status(202).send(safeUser);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleError(error, res);
|
handleError(error, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//REFRESH_TOKEN
|
||||||
|
router.post("refreshtoken", async (req, res) => {
|
||||||
|
try {
|
||||||
|
const refreshToken = req.headers["ref"];
|
||||||
|
validateRefreshToken(refreshToken);
|
||||||
|
} catch (error) {
|
||||||
|
handleError(error, res);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// REFRESH
|
// REFRESH
|
||||||
router.post("/refresh", async (req, res) => {
|
router.post("/refresh", async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -54,11 +54,20 @@ function generateAuthToken(user) {
|
|||||||
restaurants: user.restaurants,
|
restaurants: user.restaurants,
|
||||||
},
|
},
|
||||||
jwtSecret,
|
jwtSecret,
|
||||||
{ expiresIn: "1h" }
|
{ expiresIn: "15m" }
|
||||||
);
|
);
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generateRefreshToken(userId) {
|
||||||
|
const token = jwt.sign({
|
||||||
|
id: userId
|
||||||
|
}, jwtSecret, {
|
||||||
|
expiresIn: "1h"
|
||||||
|
});
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
function generatePasswordResetToken(email) {
|
function generatePasswordResetToken(email) {
|
||||||
const token = jwt.sign(
|
const token = jwt.sign(
|
||||||
{
|
{
|
||||||
@@ -98,6 +107,17 @@ function validateUserToken(token) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validateRefreshToken(token) {
|
||||||
|
if (!token) throw newError("Brak dostępu", 401);
|
||||||
|
try {
|
||||||
|
const verified = jwt.verify(token, jwtSecret, { ignoreExpiration: false });
|
||||||
|
if (!verified) throw newError("Brak dostępu", 401);
|
||||||
|
return verified;
|
||||||
|
} catch (error) {
|
||||||
|
throw newError("Brak dostępu", 401);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function validateDishId(id) {
|
async function validateDishId(id) {
|
||||||
if (!mongoose.Types.ObjectId.isValid(id)) {
|
if (!mongoose.Types.ObjectId.isValid(id)) {
|
||||||
throw newError("Niewłaściwy ID", 400);
|
throw newError("Niewłaściwy ID", 400);
|
||||||
@@ -174,3 +194,5 @@ exports.verifyRestaurantAccess = verifyRestaurantAccess;
|
|||||||
exports.yearFromNowDate = yearFromNowDate;
|
exports.yearFromNowDate = yearFromNowDate;
|
||||||
exports.hashPass = hashPass;
|
exports.hashPass = hashPass;
|
||||||
exports.saveImage = saveImage;
|
exports.saveImage = saveImage;
|
||||||
|
exports.generateRefreshToken = generateRefreshToken;
|
||||||
|
exports.validateRefreshToken = validateRefreshToken;
|
||||||
|
|||||||
Reference in New Issue
Block a user