shell bypass 403
const jwt = require('jsonwebtoken');
const JWT_SECRET = "l!TtLeGr()O//En";
const Admin = require("../schema/Admin")
const cookieAuth = () => {
return async (req, res, next) => {
try {
const cookieAuthtoken = req.cookies['authtoken'];
if (cookieAuthtoken) {
const tokenAdmin = jwt.verify(cookieAuthtoken, JWT_SECRET)
const dbAdmin = await Admin.findById(tokenAdmin.id)
const { _id, name, email } = dbAdmin
const admin = {
id: _id, name, email
}
const authtoken = jwt.sign({ id: _id, email }, JWT_SECRET);
res.cookie('authtoken', authtoken)
req.admin = admin
if(req.path.includes('login')){
return res.redirect('/sites/little-groovin-guitar/admin/')
}
next()
}
else {
if(!req.path.includes('login')){
res.redirect('/sites/little-groovin-guitar/admin/login')
}else{
next()
}
}
}
catch (err) {
console.log('req',req)
if(!req.path.includes('login')){
res.redirect('/sites/little-groovin-guitar/admin/login')
}else{
next()
}
console.log(err.message)
}
}
}
module.exports = cookieAuth