Add password protection to shorten and stats
This commit is contained in:
parent
f8a1d9c6ef
commit
cad2514628
8
index.js
8
index.js
|
@ -42,6 +42,10 @@ app.get('/:shortUrl', (req, res) => { // Shortened URL
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/stats/:shortUrl', (req, res) => { // Stats
|
app.get('/stats/:shortUrl', (req, res) => { // Stats
|
||||||
|
if (req.query.passcode !== passcode) {
|
||||||
|
return res.status(403).json({ error: 'Invalid passcode' });
|
||||||
|
}
|
||||||
|
|
||||||
const shortUrl = req.params.shortUrl;
|
const shortUrl = req.params.shortUrl;
|
||||||
db.get('SELECT * FROM urls WHERE shortUrl = ?', [shortUrl], (err, row) => {
|
db.get('SELECT * FROM urls WHERE shortUrl = ?', [shortUrl], (err, row) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -68,6 +72,9 @@ app.post('/shorten', (req, res) => { // Shorten URL
|
||||||
if (!req.body.url) {
|
if (!req.body.url) {
|
||||||
return res.status(400).json({ error: 'Please provide a URL' });
|
return res.status(400).json({ error: 'Please provide a URL' });
|
||||||
}
|
}
|
||||||
|
if (req.body.passcode !== passcode) {
|
||||||
|
return res.status(403).json({ error: 'Invalid passcode' });
|
||||||
|
}
|
||||||
// Generate a 8 character long string, only if { shortUrl } doesnt exist in body
|
// Generate a 8 character long string, only if { shortUrl } doesnt exist in body
|
||||||
const shortUrl = req.body.shortUrl || Math.random().toString(36).substr(2, 8);
|
const shortUrl = req.body.shortUrl || Math.random().toString(36).substr(2, 8);
|
||||||
// Check if shortUrl is already in use
|
// Check if shortUrl is already in use
|
||||||
|
@ -91,6 +98,7 @@ app.post('/shorten', (req, res) => { // Shorten URL
|
||||||
});
|
});
|
||||||
|
|
||||||
port = process.env.SERVER_PORT || 3000;
|
port = process.env.SERVER_PORT || 3000;
|
||||||
|
passcode = process.env.PASSCODE || 'ChangeMe';
|
||||||
|
|
||||||
app.listen(port, () => {
|
app.listen(port, () => {
|
||||||
console.log(`Server is running on port ${port}`);
|
console.log(`Server is running on port ${port}`);
|
||||||
|
|
Loading…
Reference in a new issue