import { createUserClient } from './appwriteAdmin.js' const DEBUG_LOG = (location, message, data, hypothesisId) => { // #region agent log fetch('http://127.0.0.1:7281/ingest/30e8e71c-b377-4e72-84f9-593826c6d234', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '80bbfc' }, body: JSON.stringify({ sessionId: '80bbfc', location, message, data, hypothesisId, timestamp: Date.now(), }), }).catch(() => {}) // #endregion } export async function loginWithAppwrite(email, password) { const { client, account } = createUserClient() let session try { session = await account.createEmailPasswordSession(email, password) DEBUG_LOG('appwriteClient.js:session', 'createEmailPasswordSession ok', { hasSecret: Boolean(session?.secret), sessionId: session?.$id || null, }, 'H1') } catch (err) { DEBUG_LOG('appwriteClient.js:session', 'createEmailPasswordSession fail', { code: err?.code, type: err?.type, message: err?.message?.slice(0, 120), }, 'H1') const message = err?.message || 'Anmeldung fehlgeschlagen' const error = new Error(message) error.status = 401 throw error } if (session?.secret) { client.setSession(session.secret) DEBUG_LOG('appwriteClient.js:setSession', 'setSession applied', { hasSessionHeader: true }, 'H2') } else { DEBUG_LOG('appwriteClient.js:setSession', 'no session.secret', {}, 'H2') } let user try { user = await account.get() DEBUG_LOG('appwriteClient.js:get', 'account.get ok', { userId: user?.$id || null }, 'H2') } catch (err) { DEBUG_LOG('appwriteClient.js:get', 'account.get fail', { code: err?.code, message: err?.message?.slice(0, 120), }, 'H2') const message = err?.message || 'Anmeldung fehlgeschlagen' const error = new Error(message) error.status = err?.message?.includes('scopes') ? 401 : 500 throw error } try { await account.deleteSession('current') } catch { // Portal nutzt eigene Session; Appwrite-Session wird nicht persistiert } return user }