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
JavaScript
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;
});
}