import { createUserClient, createAdminClient } from './appwriteAdmin.js' /** * Appwrite liefert session.secret nur bei Requests mit API-Key. * Server-seitiger E-Mail-Login nutzt daher userId aus der Session + Admin Users API. */ export async function loginWithAppwrite(email, password) { const { account } = createUserClient() let session try { session = await account.createEmailPasswordSession(email, password) } catch (err) { const message = err?.message || 'Anmeldung fehlgeschlagen' const error = new Error(message) error.status = 401 throw error } const userId = session?.userId if (!userId) { const error = new Error('Appwrite-Session ohne Benutzer-ID') error.status = 500 throw error } const { users } = createAdminClient() let user try { user = await users.get(userId) } catch (err) { const message = err?.message || 'Benutzer konnte nicht geladen werden' const error = new Error(message) error.status = 500 throw error } try { await users.deleteSession(userId, session.$id) } catch { // Portal nutzt eigene Cookie-Session; Appwrite-Session wird nicht persistiert } return user }