mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 03:08:26 +00:00
WebInterface reference implementation
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
var auth = require('../core/jwt_auth.js').auth;
|
||||
|
||||
var RegisterEQW = function(app, api) {
|
||||
app.post('/api/eqw/islocked', auth, function (req, res) {
|
||||
api.Call('EQW::IsLocked', [])
|
||||
.then(function(value) {
|
||||
res.send({ response: value });
|
||||
})
|
||||
.catch(function(reason) {
|
||||
res.sendStatus(500);
|
||||
});
|
||||
});
|
||||
|
||||
app.post('/api/eqw/lock', auth, function (req, res) {
|
||||
api.Call('EQW::Lock', [])
|
||||
.then(function(value) {
|
||||
res.send({ response: value });
|
||||
})
|
||||
.catch(function(reason) {
|
||||
res.sendStatus(500);
|
||||
});
|
||||
});
|
||||
|
||||
app.post('/api/eqw/unlock', auth, function (req, res) {
|
||||
api.Call('EQW::Unlock', [])
|
||||
.then(function(value) {
|
||||
res.send({ response: value });
|
||||
})
|
||||
.catch(function(reason) {
|
||||
res.sendStatus(500);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'Register': RegisterEQW
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
const sodium = require('libsodium-wrappers-sumo');
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
var RegisterToken = function(app) {
|
||||
app.post('/api/token', function (req, res) {
|
||||
try {
|
||||
req.mysql.getConnection(function(err, connection) {
|
||||
if(err) {
|
||||
console.log(err);
|
||||
res.sendStatus(500);
|
||||
connection.release();
|
||||
return;
|
||||
}
|
||||
|
||||
connection.query('SELECT password FROM account WHERE name = ? LIMIT 1', [req.body.username], function (error, results, fields) {
|
||||
if(results.length == 0) {
|
||||
res.sendStatus(401);
|
||||
connection.release();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(sodium.crypto_pwhash_str_verify(results[0].password, req.body.password)) {
|
||||
var expires = Math.floor(Date.now() / 1000) + (60 * 60 * 24 * 7);
|
||||
var token = jwt.sign({ username: req.body.username, exp: expires }, req.key);
|
||||
res.send({token: token, expires: expires});
|
||||
connection.release();
|
||||
} else {
|
||||
res.sendStatus(401);
|
||||
connection.release();
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch(ex) {
|
||||
res.sendStatus(500);
|
||||
console.log(ex);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'Register': RegisterToken
|
||||
}
|
||||
Reference in New Issue
Block a user