34 lines
835 B
TypeScript
34 lines
835 B
TypeScript
import { app, assistantConfig } from '../../app.ts';
|
|
|
|
app.route({
|
|
path: 'admin',
|
|
key: 'login',
|
|
description: '管理员用户登录',
|
|
}).define(async (ctx) => {
|
|
const { username, password } = ctx.query;
|
|
const query = assistantConfig.query;
|
|
const auth = assistantConfig.getConfig().auth;
|
|
const res = await query.post({
|
|
path: 'user',
|
|
key: 'login',
|
|
data: {
|
|
username,
|
|
password,
|
|
},
|
|
})
|
|
if (res.code !== 200) {
|
|
return ctx.throw(401, 'login failed');
|
|
}
|
|
const loginUser = res.data.username;
|
|
if (auth.username && loginUser !== auth.username) {
|
|
return ctx.throw(403, 'login user is not admin user');
|
|
}
|
|
if (!auth.username) {
|
|
// 初始管理员账号
|
|
auth.username = 'admin';
|
|
assistantConfig.setConfig({ auth });
|
|
}
|
|
// 保存配置
|
|
|
|
ctx.body = res.data;
|
|
}).addTo(app); |