Skip to main content
Glama
test-corrected-jwt-final.js8.56 kB
#!/usr/bin/env node /** * Final JWT Token Test - Test with the character-corrected JWT token */ import { chromium } from 'playwright'; async function testCorrectedJWT() { console.log('🔍 Testing Corrected JWT Token with Character Fixes'); // JWT token with G→E and K→L character corrections applied - using ACTUALLY corrected token const correctedJWTToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFkbWluLmRlc2Vudm9sdmltZW50b0BldWNvbnF1aXN0by5jb20iLCJuYW1lIjoiQWRtaW4gRGV2Iiwib2lkIjoiNWZiM2RlYzYtYzQ5NC1lYzExLWEyMmEtZGM5ODQwNDFjOTVkIiwiZGlyZWN0b3J5IjoiYjBmZWY4NjAtYzQ5NC1lYzExLWEyMmEtZGM5ODQwNDFjOTVkIiwiYXBpbSI6IkVFQzUzQTI0LUVDMEUtNDFCOS05NDA1LTg2QTE3NTAwREIzNCIsImRpcm4iOiJEZXNlbnZvbHZpbWVudG8iLCJyb2xlIjpbIlJldmlld0NvbnRyaWJ1dG9yIiwiQ29udHJpYnV0b3JHbG9iYWwiLCJBZG1pbmlzdHJhdG9yR2xvYmFsIl0sImRjbiI6WyJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dFYyMXRTRS1vZHA5NElpMnVVYTNqMXNxRXl6YWhrN3ZxWlN5MG5sLV94c3cyb0xEN05jT2ppRThWelhyZDBEamF3XzQyVW1fZmxrT1loZzlVN0ZKOGx5N1dWQVFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0c2xCWS0zTjB5WkU1S1NNSFhKTzhjcm0wNS1remgtYVBzTXhtMnZvOTBxYzhXTjktX08wRzRMbmo5dDRqb2R4bnZNdVkycHJEd1NrYlkyamJOMnpuNXJvemJmR3dBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dnpkMWU1SDFGTzVhenRyR1RuZXZ6emx0U0djM3VFT1IteHExWXZNVHF5NEstaThXR0gwd292cC1ka3FjNm82d2xSZkM0d3k5MVcxSHFqOFU4aEMtRWZMa0pSQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dU5XMnUyS3A5dXZhUGhkOFNpOE9KNV8yTmRmZnNTSC0temZHTXVmX084Wm5GbXFXRE5qeE1ubnBWelRkVTBPVF9mUldtNVVhTkxlV2oyTjY5Y3JRS0x1SmJQQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0czY2NE5odVhwck52S3FiV1RuUEtGNTU2UzRycXdXNDJ1SnkzbjNGVkxFVjZ4VlljdU9kTnVrZXliMjdKbjRlOS1GaGNNdW1iOTZ1cUx0aEptSDJrX0h0U29MQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREN3dWpCWjhyQW81RUxEaHRvQ2ZUdmVQcTVET2hpd1dtM3A2eFktTDdIYkpTb2RFU2I2SUVWQ3BQcXpETTJ2WlR6VzlsMXBrWlBFb3Zkbl8tV3R2LWY0bkt3dmEtU0FBQUFBRF9fdyJdLCJzY3AiOlsiSDRzSUFBQUFBQUFBQTJKbVlHRHdZQUFCMDZRMDA5VFU1RlNKTmZzV1NKNDRWWGZBeHZYeDVEc3lzaFhPNmllVGk0cWVYbTZaVVN2QzZ2djNST0hNRDBkVHBDVHUzekFfVUMtWVVIOHIyMzNlS29mQ0hZR3UwWG83aWswWGROWVVxdmotV0hfclhiU3VVYnJZM1VZQUFBQUFfXzgiLCJINHNJQUFBQUFBQUFBd0RTQWkzOUF3QUFBck1BQUFBQUFHRTVaalF6TkRsa2E0TWozbjdQejY0dmpPSWl5LVlNb3dhRDdlMWpqcDZJakE2SVFZMi14TFNOTWFSZWNrTTdzWEJLamR2SkpoeUF5TnZJVHQ5aUFFWHcybVVzM3lIbGc2UHNtSld1Mm1EU2UwbXlrYnQ0OGl1NTlkYTIxMVBNdkxyRzdxOV9teDlhYWI0SjdZbWlNODg2OTVUclk3WFY1Nmlsb3UwdnQ4VmdBMWptbkdYd0paa0ZDTXhYaUlhcGl5S01TVGlfa3BnREdQdlRlYUNNdE5GSXlIU0gwUTZ3bTFwRkJBYzRMQ1dqRThMeWtnc1ZtbEJxRG9aek1oZTVnY21sZHl0VW1FVFltakIyakVaUHdvd0M2NFRZb1JudDJOWkpmRDdDZXg1T3FqY1ptVU5tNjMtVlRYOFh0UEtza1BpSnpIb3kzcHF5dXVycnVrTndZenducHpwak51OEdKZXQ4V2RoMl85ckNoVnpPUnR4N1N5UXEyb2prUmJfWEphenFtTnEwMEVTcTNSZUVSX0pQZmhGOGg4bGlxcGVWeE1FSG5RUGFmMXp2N3FVQ3JzTWtrVjc1TmxnRGVUZ1YvWGVyX0Rud3FkektCOFdtY1p0OXFjMXZpU0ROV1JHZVN0bHc3d250UzFSSXlBN205cS01YU9FLUx0ODB3bE1HTkxOTi1TVFN3OWVDN2dxVmQtSUZZWlhYQ2NZcWNfcWc1dDhodFdSLVJ2cUJsX3Fjbkt2N2xhaHk5elRTaHJfX1BTRWJqdTg0SkhDV3I5SXhGd2lzYVd1eVZiMUp0ZUQzcDk0WnpWZDhnTEJQRGFRVUJMZHc1SVEzWkJIc3daTXExRjJqVGdEcF92RDJLQzZzVnd1dVhaa3RzYWlrc3pMZW5NcTFUVjRUMmF5QUdyVHB3UlUzMFMwc3hfQ3pCRVlLREV0b2s4eDI5TGlnUnlHMnVfZDVpOHRyVEJ1WTNjVFdzSXVIdzRibXNVV1lkTXNwblRMMXpwNE1LWUFBQURfX3ciXSwibmJmIjoxNzQ4ODc2OTU1LCJleHAiOjE3NTE0Njg5NTUsImlhdCI6MTc0ODg3Njk1NSwiaXNzIjoiaHR0cHM6Ly9hcGkuZGlnaXRhbHBhZ2VzLmNvbS5iciIsImF1ZCI6IkV1Q29ucXVpc3RvIn0.iTUfl6-mwLwFaxYYPf6PufRSYbSJlw3tKejmbc5G42g"; const baseURL = "https://composer.euconquisto.com/#/embed"; const orgId = "36c92686-c494-ec11-a22a-dc984041c95d"; const fullURL = `${baseURL}/auth-with-token/pt_br/home/${orgId}/${correctedJWTToken}`; let browser, page; try { console.log('1️⃣ Launching browser with corrected JWT token...'); browser = await chromium.launch({ headless: false, args: [ '--no-sandbox', '--disable-dev-shm-usage', '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' ] }); const context = await browser.newContext({ viewport: { width: 1280, height: 720 } }); page = await context.newPage(); page.setDefaultTimeout(30000); page.setDefaultNavigationTimeout(60000); // Log events page.on('console', msg => console.log(`PAGE: ${msg.text()}`)); page.on('pageerror', error => console.error(`PAGE ERROR: ${error.message}`)); page.on('response', response => { if (!response.ok() && response.status() !== 404) { console.log(`HTTP ${response.status()}: ${response.url()}`); } }); console.log('2️⃣ Navigating to Composer with corrected JWT...'); console.log(`URL: ${fullURL.substring(0, 100)}...`); const response = await page.goto(fullURL, { waitUntil: 'domcontentloaded', timeout: 60000 }); if (!response || !response.ok()) { console.error(`❌ Navigation failed with status: ${response?.status()}`); return; } console.log('✅ Page loaded successfully'); // Wait for JavaScript initialization console.log('3️⃣ Waiting for application to initialize...'); await page.waitForTimeout(10000); // Check page content const content = await page.evaluate(() => { const body = document.body; const buttons = document.querySelectorAll('button'); const hasComposerContent = body.textContent?.includes('Nova') || body.textContent?.includes('Composição') || body.textContent?.includes('Composer'); return { bodyTextLength: body.textContent?.length || 0, buttonCount: buttons.length, hasComposerContent, title: document.title, allButtonTexts: Array.from(buttons).slice(0, 10).map(btn => btn.textContent?.trim()).filter(text => text) }; }); console.log('4️⃣ Page content analysis:'); console.log(' - Page title:', content.title); console.log(' - Body text length:', content.bodyTextLength); console.log(' - Button count:', content.buttonCount); console.log(' - Has Composer content:', content.hasComposerContent); console.log(' - Available buttons:', content.allButtonTexts); // Screenshot const timestamp = Date.now(); await page.screenshot({ path: `corrected-jwt-test-${timestamp}.png`, fullPage: true }); console.log(`📸 Screenshot saved: corrected-jwt-test-${timestamp}.png`); // Look for "NOVA COMPOSIÇÃO" button const novaButton = await page.locator('text=NOVA COMPOSIÇÃO').first(); const novaButtonExists = await novaButton.count() > 0; console.log('5️⃣ \"NOVA COMPOSIÇÃO\" button check:', novaButtonExists ? '✅ Found' : '❌ Not found'); if (novaButtonExists) { console.log('🎉 SUCCESS: Composer page loaded with corrected JWT and \"NOVA COMPOSIÇÃO\" button visible!'); console.log('✅ TASK-001 JWT token correction appears to be successful'); } else { console.log('⚠️ ISSUE: Page loaded but \"NOVA COMPOSIÇÃO\" button still not visible'); console.log('🔍 This suggests the issue may be beyond JWT token character errors'); } // Wait a bit longer to observe the page console.log('6️⃣ Waiting additional time to observe page behavior...'); await page.waitForTimeout(5000); } catch (error) { console.error('❌ Test failed:', error.message); if (page) { try { await page.screenshot({ path: `corrected-jwt-error-${Date.now()}.png`, fullPage: true }); console.log('📸 Error screenshot saved'); } catch (screenshotError) { console.error('Could not take error screenshot'); } } } finally { if (browser) { await browser.close(); console.log('🔒 Browser closed'); } } } // Run the test testCorrectedJWT().catch(console.error);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server