jwtFileServer/index.js.save

49 lines
1.2 KiB
Plaintext

const express = require('express')
const dotenv = require('dotenv');
const jwt = require('jsonwebtoken');
const app = express()
dotenv.config();
let port = process.env.PORT || 5000;
// app.get('/', (req, res) => {
// res.send('Hello World!')
// })
app.get('/*', (req, res, next) => {
try {
const token = req.query.access_token;
//console.log(token);
console.log(
const verified = jwt.verify(token, process.env.TOKEN_HEADER_KEY);
if(verified){
let isAllowed = true
var path = require('path');
// const { user } = req;
const { file } = req.params.filepath;
//console.log(file);
if(isAllowed) {
// return res.sendFile(path.join(__dirname, 'conv4', path.sep, file));
return res.sendFile(file, { root: path.join(__dirname, '../conv4') });
}
const error = new Error('UNAUTHORISED');
error.status = 403;
return next(error);
}else{
// Access Denied
return res.status(401).send(error);
}
} catch (error) {
// JsonWebTokenError @invalid token
return res.status(400).send(error);
}
})
app.listen(port, () => {
console.log(`FileAccessJWT API listening on port ${port}`)
})