fea: 完成添加用户,查询用户,鉴权,和添加管理员API

This commit is contained in:
cancerai committed 2026-10-11 21:58:58 +08:00
1 parent 861a689759
commit b43c31a12b
6 files changed
+236 -74

No files matched your search

+9 -6
View File
@@ -2,13 +2,16 @@ import type { SQL } from "bun";
export async function checkAdmin(
db: SQL,
name: String,
passwd: String
name: string,
passwd: string
): Promise<Boolean> {
interface adminDTO {
name: String,
passwd: String
name: string,
passwd: string
}
const rows: adminDTO[] = await db`select * from admin where name = ${name} and passwd = ${passwd}`
return rows.length == 0 ? false : true
const rows: adminDTO[] = await db`select passwd from admin where name = ${name}`
if (rows.length == 0) {
return false
}
return await Bun.password.verify(passwd, rows[0]!["passwd"])
}
+63 -7
View File
@@ -1,13 +1,69 @@
import type { SQL } from "bun";
import type { BlobOrStringOrBuffer, SQL } from "bun";
import { responseStr } from "../const/response_str";
async function checkUserIfExists(db: SQL, name: string): Promise<boolean> {
const rows = await db`select name from user where name = ${name}`
return rows.length == 0 ? false : true
}
// 返回state为0添加成功,非0添加失败
export async function addUser(db: SQL, name: string, passwd: string): Promise<{ state: number, msg: string }> {
// 检查用户是否存在
if (await checkUserIfExists(db, name)) {
return {
"state": -1,
"msg": responseStr.USER_EXISTS
}
}
const encryptPasswd = await Bun.password.hash(passwd)
await db`insert into user(name, passwd, create_time) values(${name}, ${encryptPasswd}, NOW())`
return {
"state": 0,
"msg": responseStr.USER_ADD_OK
}
}
export async function checkUser(
db: SQL,
name: String,
passwd: String
) {
name: string,
passwd: string
): Promise<Boolean> {
interface userDTO {
name: String,
name: string,
passwd: string
}
const rows: userDTO[] = await db`select name from user where name = ${name} and passwd = ${passwd}`
return rows.length == 0 ? false : true
if (!await checkUserIfExists(db, name)) {
return false;
}
const queryPasswd = (await db`select passwd from user where name = ${name}`)[0]["passwd"]
if (!await Bun.password.verify(passwd, queryPasswd)) {
return false
}
return true
}
export async function getAllUser(
db: SQL
) {
const rows = await db`select name, passwd, create_time, update_time from user`
interface userDTO {
name: string,
passwd: string,
create_time: Date,
update_time: Date,
}
let re: userDTO[] = []
rows.forEach((ele: { [x: string]: any; }) => {
re.push({
"name": ele["name"],
"passwd": ele["passwd"],
"create_time": ele["create_time"],
"update_time": ele["update_time"],
})
});
return re
}