Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require("express");
- var crypto = require("crypto");
- var Sequelize = require('sequelize');
- var config = require("./config.js");
- var app = express();
- var seq = new Sequelize(config.database_uri);
- const Word = seq.define("word", {
- uuid: {type: Sequelize.UUID, primaryKey: true, defaultValue: Sequelize.UUIDV4, allowNull: false},
- word: {type: Sequelize.STRING, allowNull: false},
- });
- app.get("/create-signature", async (req, res) => {
- res.setHeader("Content-Type", "application/json");
- try {
- if(req.query["magic-word"].match("[^a-zA-Z0-9\-]")) {
- throw "invalid";
- } else {
- let signature = crypto.createHash("sha1")
- .update(config.signature_secret + req.query["magic-word"])
- .digest()
- .toString("hex");
- res.send(JSON.stringify({
- "signature": signature
- }));
- }
- } catch (e) {
- res.send(JSON.stringify({
- "signature": null
- }));
- }
- });
- app.get("/unlock-system", async (req, res) => {
- res.setHeader("Content-Type", "application/json");
- try {
- let signature = crypto.createHash("sha1")
- .update(config.signature_secret + req.query["magic-word"])
- .digest()
- .toString("hex");
- if(signature != req.query["signature"]) {
- throw "invalid";
- }
- let word = await Word.findOne({
- where: {
- "word": req.query["magic-word"]
- }
- });
- res.send(JSON.stringify({
- "correct": word !== null
- }));
- } catch (e) {
- res.send(JSON.stringify({
- "correct": false
- }));
- }
- });
- app.listen(42000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement