Files
seminarhof-e2e-mqowtqw3/apps/app/src/lib/auth.ts
2026-06-22 09:44:35 +02:00

25 lines
850 B
TypeScript

import { createAuthClient } from 'better-auth/client'
function apiUrl(): string {
if (typeof window !== 'undefined' && (window as any).__E2E_API_URL) {
return (window as any).__E2E_API_URL as string
}
return import.meta.env.VITE_API_URL ?? '/api'
}
// Better Auth mounts at /api/auth (default basePath); the client appends the
// endpoint verbatim to baseURL, so the base must include /auth — otherwise it
// emits /api/sign-in/email and 404s on both sandbox and deploy.
export const authClient = createAuthClient({
baseURL: `${apiUrl()}/auth`,
})
export async function signIn(email: string, password: string): Promise<void> {
const { error } = await authClient.signIn.email({ email, password })
if (error) throw new Error('Invalid credentials')
}
export async function signOut(): Promise<void> {
await authClient.signOut()
}