8
0
mirror of https://github.com/key-networks/ztncui.git synced 2024-08-31 04:28:00 +00:00

Building RPM and DEB packages with pkg and fpm

This commit is contained in:
Key Networks
2018-01-03 12:07:30 +08:00
parent 22e420364d
commit 66b8356d7b
50 changed files with 428 additions and 8 deletions

48
src/controllers/auth.js Normal file
View File

@@ -0,0 +1,48 @@
/*
ztncui - ZeroTier network controller UI
Copyright (C) 2017 Key Networks (https://key-networks.com)
Licensed under GPLv3 - see LICENSE for details.
*/
const argon2 = require('argon2');
const usersController = require('../controllers/usersController');
hash_check = async function(user, password) {
let verified = false;
try {
var users = await usersController.get_users();
} catch (err) {
throw err;
}
try {
verified = await argon2.verify(users[user].hash, password);
} catch (err) {
throw err;
}
return verified;
}
exports.authenticate = async function(name, pass, callback) {
try {
var users = await usersController.get_users();
} catch (err) {
throw err;
}
let user = users[name];
if (!user) return callback(new Error('cannot find user'));
let verified = await hash_check(name, pass);
if (verified) {
return callback(null, user);
} else {
return callback(new Error('invalid password'));
}
}
exports.restrict = function(req, res, next) {
if (req.session.user) {
next();
} else {
req.session.error = 'Access denied!';
res.redirect('/login');
}
}