Files
ai-agent/web/lib/api/auth.ts
T

52 lines
1.2 KiB
TypeScript
Raw Normal View History

2026-04-09 10:01:23 +08:00
import { clearSession, writeSession, type AuthSession } from "@/lib/auth"
import { request } from "@/lib/api/client"
export type LoginRequest = {
username: string
password: string
}
export async function loginWithPassword(payload: LoginRequest) {
const data = await request<AuthSession>("/api/auth/login", {
method: "POST",
body: JSON.stringify(payload),
skipAuth: true,
})
writeSession(data)
return data
}
export async function exchangeWxWorkTicket(ticket: string) {
const data = await request<AuthSession>("/api/auth/wxwork_exchange", {
method: "POST",
body: JSON.stringify({ ticket }),
skipAuth: true,
})
writeSession(data)
return data
}
2026-05-24 20:49:10 +08:00
export async function exchangeOIDCTicket(ticket: string) {
const data = await request<AuthSession>("/api/auth/oidc_exchange", {
method: "POST",
body: JSON.stringify({ ticket }),
skipAuth: true,
})
writeSession(data)
return data
}
2026-04-09 10:01:23 +08:00
export async function fetchProfile() {
return request<AuthSession>("/api/auth/profile")
}
export async function logout() {
2026-04-09 10:01:23 +08:00
try {
await request("/api/auth/logout", {
method: "POST",
})
} finally {
clearSession()
}
}