lora-project/server-api/route/api/user.js

39 lines
1.2 KiB
JavaScript

const Router = require('koa-router');
const router = new Router();
// import tools
const crypto = require('../../libs/crypto.js');
const so = require('../../libs/storeObject');
router
.post('/login', async(c, n) => {
let arr = c.request.body;
if (!arr.data) return c.body = 'ERR0000';
if (!arr.data.account) return c.body = 'ERR0001';
if (!arr.data.password) return c.body = 'ERR0002';
try {
let user = await c.syncQuery('select `uid`,`account`,`password`,`name`,`email` from ??.?? where `account` = ?', ['lora', 'user', arr.data.account])
if (user.length == 0) return c.body = 'user not exists';
if (!crypto.comparePass(arr.data.password, user[0].password)) return c.body = 'password not match';
delete user[0].password;
c.body = {
record: user
}
} catch (err) {
return c.body = 'DB Query Error';
}
let u = c.body.record[0];
let uuid = null;
while (true) {
uuid = crypto.random(10);
if (!so.chkKey(uuid)) { break; }
}
so.set(uuid, u);
})
module.exports = router;