fea: 完成添加用户,查询用户,鉴权,和添加管理员API
This commit is contained in:
1 parent
861a689759
commit
b43c31a12b
6 files changed
+236
-74
No files matched your search
+9
-6
@@ -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
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user