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
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); |