async function testAdminAccess() { console.log('🧪 測試管理員存取權限...\n'); try { // 1. 測試管理員登入 console.log('1. 測試管理員登入...'); const loginResponse = await fetch('http://localhost:3000/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: 'admin@ai-platform.com', password: 'admin123456' }) }); if (loginResponse.ok) { const loginData = await loginResponse.json(); console.log('✅ 管理員登入成功'); console.log('用戶資料:', { id: loginData.user?.id, name: loginData.user?.name, email: loginData.user?.email, role: loginData.user?.role, department: loginData.user?.department }); // 2. 測試管理員頁面存取 console.log('\n2. 測試管理員頁面存取...'); const adminResponse = await fetch('http://localhost:3000/admin'); if (adminResponse.ok) { console.log('✅ 管理員頁面載入成功'); console.log('狀態碼:', adminResponse.status); // 檢查頁面內容 const pageContent = await adminResponse.text(); if (pageContent.includes('存取被拒')) { console.log('❌ 頁面顯示存取被拒'); if (pageContent.includes('調試信息')) { console.log('📋 調試信息已顯示,請檢查用戶角色'); } } else if (pageContent.includes('儀表板') || pageContent.includes('管理員')) { console.log('✅ 管理員頁面正常顯示'); } else { console.log('⚠️ 頁面內容不確定'); } } else { console.log('❌ 管理員頁面載入失敗:', adminResponse.status); } } else { const errorData = await loginResponse.text(); console.log('❌ 管理員登入失敗:', loginResponse.status, errorData); } console.log('\n🎉 管理員存取權限測試完成!'); console.log('\n📋 可能的原因:'); console.log('1. 用戶未正確登入'); console.log('2. 用戶角色不是 admin'); console.log('3. 用戶資料載入時機問題'); console.log('4. localStorage 中的用戶資料有問題'); } catch (error) { console.error('❌ 測試過程中發生錯誤:', error); } } testAdminAccess();