$httpCode, 'data' => $decoded, 'error' => $httpCode >= 400 ? ($decoded['msg'] ?? $decoded['error_description'] ?? 'Unknown error') : null ]; } public static function createUser(string $email, string $password): array { // Use Admin API to create user without email verification return self::request('POST', '/auth/v1/admin/users', [ 'email' => $email, 'password' => $password, 'email_confirm' => true ], true); } public static function signIn(string $email, string $password): array { return self::request('POST', '/auth/v1/token?grant_type=password', [ 'email' => $email, 'password' => $password ]); } public static function updateUserPassword(string $uid, string $password): array { return self::request('PUT', '/auth/v1/admin/users/' . $uid, [ 'password' => $password ], true); } public static function getUserByEmail(string $email): ?array { $res = self::request('GET', '/auth/v1/admin/users', [], true); if ($res['status'] === 200 && isset($res['data']['users'])) { foreach ($res['data']['users'] as $user) { if ($user['email'] === $email) return $user; } } return null; } }