Фрагмент ниже дает представление о том, как его можно реализовать с помощью временного токена. В основном вам нужно использовать параметр пути в качестве токена, проверить, существует ли этот токен, а затем удалить его после первого использования. Вы можете проверить этот код с помощью: http://localhost: 3000 / временная ссылка / d5407341-3a54-4e30-acf1-09d2174b3e23 После повторного нажатия он не будет работать.
var express = require('express');
var app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
//get from database or something like it
const allowedUUIDs = ['d5407341-3a54-4e30-acf1-09d2174b3e23',
'7811c8bf-ddf7-4439-a193-93dca12a0656',
'cef82390-9c0a-43e9-93e8-1a80aa5eced5',
'86520485-9d09-48ba-b65c-9bab0ff2e3a2'
];
//test your UUID (access token)
function checkSingleAccess(requestUUID) {
const index = allowedUUIDs.indexOf(requestUUID);
const UUIDExists = index > -1;
if(UUIDExists){
//remove from array, or your database
allowedUUIDs.splice(index, 1);
}
console.log(UUIDExists);
return UUIDExists;
}
//set a path parameter with :uuid
app.use('/temporary-link/:uuid', function(req, res, next) {
//get your path parameter
const requestUUID = req.params.uuid;
//test if allowed
if(checkSingleAccess(requestUUID)){
res.send(`UUID ${requestUUID} allowed` );
}else{
//if not build an error
const errorResponse = `UUID ${requestUUID} not allowed`;
res.status(403, errorResponse);
res.send(errorResponse);
}
});
module.exports = app;