33 lines
668 B
TypeScript
33 lines
668 B
TypeScript
|
|
// src/api/pocketbase.ts
|
||
|
|
import PocketBase from 'pocketbase'
|
||
|
|
|
||
|
|
const pbUrl = import.meta.env.VITE_PB_URL || '/api'
|
||
|
|
|
||
|
|
export const pb = new PocketBase(pbUrl)
|
||
|
|
|
||
|
|
// 认证状态持久化
|
||
|
|
pb.authStore.loadFromCookie(document.cookie)
|
||
|
|
|
||
|
|
// 保存认证状态到 cookie
|
||
|
|
pb.authStore.onChange(() => {
|
||
|
|
document.cookie = pb.authStore.exportToCookie({ httpOnly: false })
|
||
|
|
})
|
||
|
|
|
||
|
|
// 获取当前用户
|
||
|
|
export function getCurrentUser() {
|
||
|
|
return pb.authStore.model
|
||
|
|
}
|
||
|
|
|
||
|
|
// 检查是否已登录
|
||
|
|
export function isAuthenticated(): boolean {
|
||
|
|
return pb.authStore.isValid
|
||
|
|
}
|
||
|
|
|
||
|
|
// 登出
|
||
|
|
export function logout() {
|
||
|
|
pb.authStore.clear()
|
||
|
|
window.location.href = '/login'
|
||
|
|
}
|
||
|
|
|
||
|
|
export default pb
|