UNPKG

pocketbase-tools

Version:

A TypeScript toolkit for PocketBase, featuring a standard service/action/types layered structure. It provides interfaces and implementations for common business logic such as users, products, company profiles, and file utilities, making it suitable for se

82 lines (81 loc) 2.32 kB
import pb, { superCollect, userCollect } from "./base"; import { withErrorHandling } from "./utils/errorHandler"; import { logger } from "./utils/logger"; let adminAccount = { email: "", password: "" }; let userAccount = { username: "", password: "" }; /** * 设置管理员账号 */ export function setAdminAccount(account) { adminAccount = account; } /** * 设置普通用户账号 */ export function setUserAccount(account) { userAccount = account; } /** * 管理员登录 */ export async function loginAdmin(account) { const acc = account || adminAccount; if (!acc.email || !acc.password) throw new Error("请先设置管理员账号"); return withErrorHandling("管理员认证", async () => { const authData = await superCollect.authWithPassword(acc.email, acc.password); logger.success("管理员认证成功"); return authData; }); } /** * 普通用户登录 */ export async function loginUser(account) { const acc = account || userAccount; if (!acc.username || !acc.password) throw new Error("请先设置用户账号"); return withErrorHandling("用户认证", async () => { const authData = await userCollect.authWithPassword(acc.username, acc.password); logger.success("用户认证成功"); return authData; }); } /** * 管理员登出 */ export async function logoutAdmin() { return withErrorHandling("管理员登出", async () => { pb.authStore.clear(); logger.success("管理员已登出"); }); } /** * 用户登出 */ export async function logoutUser() { return withErrorHandling("用户登出", async () => { pb.authStore.clear(); logger.success("用户已登出"); }); } /** * 刷新管理员信息 */ export async function refreshAdmin() { return withErrorHandling("获取管理员信息", async () => { const admin = await superCollect.authRefresh(); logger.success("获取管理员信息成功", admin); return admin; }); } /** * 刷新用户信息 */ export async function refreshUser() { return withErrorHandling("获取用户信息", async () => { const user = await userCollect.authRefresh(); logger.success("获取用户信息成功", user); return user; }); }