检查可以在我的服务器中查看我的文件的用户
Check user that can view my files in my server
我想保护我的文件,没有人可以快速查看我的文件,我想检查谁登录了我的网站,然后验证他是否有权查看该文件,我该如何实现这是我用来访问我的文件的代码 url :
app.use("/profile", express.static(__dirname + '/profile'));
我只想要登录的用户,他是唯一可以查看他的个人资料图片的人,如果他不是用户,那么比如说你不能查看这个文件。
我正在使用 mongodb 作为后端,但我不知道它是 mongodb 身份验证还是快速中间件安全?
我发现了如何解决这个问题:
const checkImg = async (req, res, next) => {
const token = req.cookies.jwt;
if (token) {
jwt.verify(
token,
process.env.JWTKEY,
async (err, decodedToken) => {
if (err) {
res.json({ status: false });
} else {
const user = await UserModal.findById(decodedToken.id);
const imgUrl = req.originalUrl.split('/')[2];
const imgUser = user.profileImg;
if (imgUrl === imgUser || user.admin === "ADMIN") {
next();
}
else {
return res.send("Your are not allowed to view this file")
}
}
}
);
}else{
return res.send("you are not allowed !")
}
}
这是我使用中间件的时候:
app.use("/images", checkImg , express.static(__dirname + '/images'));
这段代码检查用户是否是同一个用户然后他只能看到数据并且admin用户可以显示数据,否则告诉他不允许他获取数据
我想保护我的文件,没有人可以快速查看我的文件,我想检查谁登录了我的网站,然后验证他是否有权查看该文件,我该如何实现这是我用来访问我的文件的代码 url :
app.use("/profile", express.static(__dirname + '/profile'));
我只想要登录的用户,他是唯一可以查看他的个人资料图片的人,如果他不是用户,那么比如说你不能查看这个文件。
我正在使用 mongodb 作为后端,但我不知道它是 mongodb 身份验证还是快速中间件安全?
我发现了如何解决这个问题:
const checkImg = async (req, res, next) => {
const token = req.cookies.jwt;
if (token) {
jwt.verify(
token,
process.env.JWTKEY,
async (err, decodedToken) => {
if (err) {
res.json({ status: false });
} else {
const user = await UserModal.findById(decodedToken.id);
const imgUrl = req.originalUrl.split('/')[2];
const imgUser = user.profileImg;
if (imgUrl === imgUser || user.admin === "ADMIN") {
next();
}
else {
return res.send("Your are not allowed to view this file")
}
}
}
);
}else{
return res.send("you are not allowed !")
}
}
这是我使用中间件的时候:
app.use("/images", checkImg , express.static(__dirname + '/images'));
这段代码检查用户是否是同一个用户然后他只能看到数据并且admin用户可以显示数据,否则告诉他不允许他获取数据