API-token
Here is your api token
diff --git a/server/routing/client/api.js b/server/routing/client/api.js index 60479c63..6aac41f3 100644 --- a/server/routing/client/api.js +++ b/server/routing/client/api.js @@ -893,43 +893,50 @@ try { var id = crypto.createHash('sha256').update(uniqid()).digest('base64'); var uniqid_link = crypto.createHash('sha256').update(uniqid()).digest('hex'); token_db.collection("api_token").find({name: name}, function(err, results_find) { + var token = ""; if(results_find.length > 0) { - res.send("failed"); - return; + token = results_find[0].token; } - token_db.collection("api_token").insert({name: name, token: id, usage: 0, active: false, limit: 100}, function(err, docs){ - token_db.collection("api_links").insert({id: uniqid_link, token: id, createdAt: new Date()}, function(err, docs) { - let transporter = nodemailer.createTransport(mailconfig); + token_db.collection("api_links").find({token: token}, function(e, d) { + if(results_find.length == 0 || (d.length == 0 && results_find.length > 0 && !results_find[0].active)) { + token_db.collection("api_token").insert({name: name, token: id, usage: 0, active: false, limit: 100}, function(err, docs){ + token_db.collection("api_links").insert({id: uniqid_link, token: id, createdAt: new Date()}, function(err, docs) { + let transporter = nodemailer.createTransport(mailconfig); - transporter.verify(function(error, success) { - if (error) { - token_db.collection("api_links").remove({id: uniqid_link}, function(e,d) { - res.send("failed"); - return; - }) - } else { - var subject = 'ZOFF: API-key'; - var message = "Link to API-key: https://zoff.me/api/apply/" + uniqid_link + "\n\nThis link expires in 1 day."; - var msg = { - from: mailconfig.from, - to: name, - subject: subject, - text: message, - html: message, - } - transporter.sendMail(msg, (error, info) => { + transporter.verify(function(error, success) { if (error) { - res.status(400).send("failed"); - transporter.close(); - return; + token_db.collection("api_links").remove({id: uniqid_link}, function(e,d) { + res.send("failed"); + return; + }) + } else { + var subject = 'ZOFF: API-key'; + var message = "Link to API-key: https://zoff.me/api/apply/" + uniqid_link + "\n\nThis link expires in 1 day."; + var msg = { + from: mailconfig.from, + to: name, + subject: subject, + text: message, + html: message, + } + transporter.sendMail(msg, (error, info) => { + if (error) { + res.status(400).send("failed"); + transporter.close(); + return; + } + res.status(200).send("success"); + transporter.close(); + return; + }); } - res.status(200).send("success"); - transporter.close(); - return; }); - } - }); - }) + }) + }); + } else { + res.send("failed"); + return; + } }); }) } else { diff --git a/server/routing/client/router.js b/server/routing/client/router.js index e83cd624..03dc7574 100644 --- a/server/routing/client/router.js +++ b/server/routing/client/router.js @@ -51,7 +51,7 @@ router.route('/api/apply/:id').get(function(req,res) { token_db.collection('api_links').find({id: id}, function(err, result) { if(result.length == 1) { token_db.collection('api_links').remove({id: id}, function(e,d) { - token_db.collection('api_token').update({id: result[0].token}, {$set: {active: true }}, function(e,d) { + token_db.collection('api_token').update({token: result[0].token}, {$set: {active: true}}, function(e,d) { var data = { year: year, javascript_file: "token.min.js",