整合資料庫、完成登入註冊忘記密碼功能
This commit is contained in:
82
scripts/test-complete-admin-flow.js
Normal file
82
scripts/test-complete-admin-flow.js
Normal file
@@ -0,0 +1,82 @@
|
||||
async function testCompleteAdminFlow() {
|
||||
console.log('🧪 測試完整管理員流程...\n');
|
||||
|
||||
try {
|
||||
// 1. 測試登入頁面
|
||||
console.log('1. 測試登入頁面...');
|
||||
const loginPageResponse = await fetch('http://localhost:3000/');
|
||||
|
||||
if (loginPageResponse.ok) {
|
||||
console.log('✅ 登入頁面載入成功');
|
||||
} else {
|
||||
console.log('❌ 登入頁面載入失敗:', loginPageResponse.status);
|
||||
}
|
||||
|
||||
// 2. 測試管理員登入
|
||||
console.log('\n2. 測試管理員登入...');
|
||||
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
|
||||
});
|
||||
|
||||
// 3. 測試管理員頁面
|
||||
console.log('\n3. 測試管理員頁面...');
|
||||
const adminResponse = await fetch('http://localhost:3000/admin');
|
||||
|
||||
if (adminResponse.ok) {
|
||||
const pageContent = await adminResponse.text();
|
||||
|
||||
if (pageContent.includes('載入中...')) {
|
||||
console.log('✅ 頁面顯示載入中狀態(正常)');
|
||||
} else if (pageContent.includes('存取被拒')) {
|
||||
console.log('❌ 頁面顯示存取被拒');
|
||||
|
||||
// 檢查調試信息
|
||||
const debugMatch = pageContent.match(/調試信息: 用戶=([^,]+), 角色=([^<]+)/);
|
||||
if (debugMatch) {
|
||||
console.log('📋 調試信息:', {
|
||||
用戶: debugMatch[1],
|
||||
角色: debugMatch[2]
|
||||
});
|
||||
}
|
||||
} else if (pageContent.includes('儀表板') || pageContent.includes('管理員')) {
|
||||
console.log('✅ 管理員頁面正常顯示');
|
||||
} else {
|
||||
console.log('⚠️ 頁面內容不確定');
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
const errorData = await loginResponse.text();
|
||||
console.log('❌ 管理員登入失敗:', loginResponse.status, errorData);
|
||||
}
|
||||
|
||||
console.log('\n🎉 完整管理員流程測試完成!');
|
||||
console.log('\n💡 解決方案:');
|
||||
console.log('1. 用戶需要先登入才能訪問管理員頁面');
|
||||
console.log('2. 登入後,用戶狀態會保存到 localStorage');
|
||||
console.log('3. 管理員頁面會檢查用戶角色');
|
||||
console.log('4. 如果角色不是 admin,會顯示存取被拒');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ 測試過程中發生錯誤:', error);
|
||||
}
|
||||
}
|
||||
|
||||
testCompleteAdminFlow();
|
Reference in New Issue
Block a user