const express = require('express');
const path = require('path');
const crypto = require('crypto');
const app = express();
const bodyParser = require('body-parser');
const PORT = 3000;
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
const tokenStore = {};
function generatePkToken() {
return crypto.randomBytes(8).toString('hex');
}
app.get('/generate', (req, res) => {
const token = generatePkToken();
tokenStore[token] = Date.now() + 60000;
const url = `http://localhost:${PORT}/access/${token}`;
res.send(`Temporary URL: <a href="${url}" target="_blank">${url}</a>`);
});
app.get('/access/:token', (req, res) => {
const token = req.params.token;
if (tokenStore[token] && tokenStore[token] > Date.now()) {
res.sendFile(path.join(__dirname, './data.html'));
} else {
res.status(403).send('Access denied.');
res.sendFile(path.join(__dirname, './error.html'));
}
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
////////////////////////////////////////
<!DOCTYPE html>
<html>
<head>
<title>Call Node.js Script</title>
</head>
<body>
<button id="executePkButton">Execute Node.js Script</button>
<script>
const executePkButton = document.getElementById('executePkButton');
executePkButton.addEventListener('click', async () => {
const response = await fetch('/execute-pk-script');
const result = await response.text();
console.log(result);
});
</script>
</body>
</html>
0 Comments