You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB
JavaScript

const fs = require('fs');
const express = require('express');
const crypto = require('crypto');
const session = require('express-session');
const FileStore = require('session-file-store')(session);
const http = require('http');
const app = express();
if(!fs.existsSync('repo')) fs.mkdirSync('repo');
if(!fs.existsSync('repo/secret')){
secret = crypto.randomBytes(35).toString('hex');
fs.writeFileSync('repo/secret', secret);
}else{
secret = fs.readFileSync('repo/secret');
}
if(fs.existsSync('repo/credentials')){
credString = fs.readFileSync('repo/credentials');
credentials = JSON.parse(credString);
}
app.use(session({
secret: secret.toString(),
saveUninitialized:false,
resave:false,
//cookie: {maxAge: none}
store:new FileStore()
}));
var logString;
function report(str){
console.log(str);
logString = logString.concat('\n', str);
}
function addUser(username, password){
var user = {
'username': username,
'pass': crypto.createHash('sha256').update(password).digest('hex')
};
credentials.push(user);
}
app.get('/', (request, response) => {
});
const server = http.createServer(app);
server.listen(8881);