feat: 0.1.2
1. login page && auth required 2. file dir cleanup
This commit is contained in:
32
frontend/src/api/auth.ts
Normal file
32
frontend/src/api/auth.ts
Normal file
@ -0,0 +1,32 @@
|
||||
import {useState} from "react";
|
||||
import {message} from "../component/message/u-message.tsx";
|
||||
|
||||
export interface User {
|
||||
id: number;
|
||||
username: string;
|
||||
login_at: number;
|
||||
token: string;
|
||||
}
|
||||
|
||||
export const useAuth = () => {
|
||||
const [user, setUser] = useState<User | null>(null)
|
||||
|
||||
const login = async (username: string, password: string) => {
|
||||
let res = await fetch("/api/uauth/login", {
|
||||
method: "POST",
|
||||
headers: {"Content-Type": "application/json"},
|
||||
body: JSON.stringify({username: username, password: password}),
|
||||
})
|
||||
|
||||
if(res.status !== 200) {
|
||||
message.error("账号或密码错误")
|
||||
throw new Error(await res.text())
|
||||
}
|
||||
|
||||
let jes = await res.json() as User;
|
||||
|
||||
setUser(jes)
|
||||
}
|
||||
|
||||
return {user, login}
|
||||
}
|
Reference in New Issue
Block a user