prepare('SELECT * FROM users WHERE username = ? AND is_active = 1 LIMIT 1'); $stmt->execute([$username]); $user = $stmt->fetch(); if (!$user || !password_verify($password, $user['password_hash'])) { ai_backend_fail(401, 'Benutzername oder Passwort ist falsch.'); } $token = bin2hex(random_bytes(32)); $tokenHash = hash('sha256', $token); $expiresAt = (new DateTimeImmutable('+30 days'))->format('Y-m-d H:i:s'); $stmt = $pdo->prepare('INSERT INTO tokens (user_id, token_hash, expires_at) VALUES (?, ?, ?)'); $stmt->execute([$user['id'], $tokenHash, $expiresAt]); echo json_encode(['token' => $token]);