49 lines
1.2 KiB
Plaintext
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}`)
|
|
})
|
|
|
|
|