# API快速测试指南 ## 概述 本文档提供认证系统API的快速测试方法,适用于开发和调试场景。 ## 前置条件 1. **启动开发服务器** ```bash php artisan serve ``` 2. **确认数据库数据** ```bash php artisan db:seed --class=AdminUserSeeder ``` ## 测试用户 | 用户类型 | 用户名 | 密码 | 说明 | |---------|--------|------|------| | 管理员 | admin | 123456 | 超级管理员权限 | | 测试用户 | test | 123456 | 普通用户权限 | ## 接口测试 (cURL) ### 1. 登录获取Token ```bash curl -X POST http://localhost:8000/admin/auth/login \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "username": "admin", "password": "123456", "device_name": "测试设备" }' ``` **成功响应示例**: ```json { "success": true, "data": { "user": { "id": 1, "username": "admin", "nickname": "超级管理员", "email": "admin@example.com" }, "token": { "access_token": "1|xxxxxxxxxxxx", "token_type": "Bearer" } }, "code": 200, "message": "登录成功" } ``` ### 2. 获取用户信息 ```bash # 替换 YOUR_TOKEN 为实际的Token curl -X GET http://localhost:8000/admin/auth/me \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ### 3. 获取设备列表 ```bash curl -X GET http://localhost:8000/admin/auth/devices \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ### 4. 刷新Token ```bash curl -X POST http://localhost:8000/admin/auth/refresh \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "device_name": "刷新后的设备" }' ``` ### 5. 登出当前设备 ```bash curl -X POST http://localhost:8000/admin/auth/logout \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ### 6. 登出所有设备 ```bash curl -X POST http://localhost:8000/admin/auth/logout-all \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ### 7. 访问仪表盘 ```bash curl -X GET http://localhost:8000/admin/dashboard \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ## 接口测试 (JavaScript) ### 浏览器控制台测试 ```javascript // 1. 登录 async function testLogin() { const response = await fetch('http://localhost:8000/admin/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ username: 'admin', password: '123456', device_name: 'Browser Test' }) }); const data = await response.json(); console.log('登录结果:', data); if (data.success) { // 保存Token到localStorage localStorage.setItem('token', data.data.token.access_token); console.log('Token已保存到localStorage'); } return data; } // 2. 测试认证接口 async function testAuthAPI() { const token = localStorage.getItem('token'); if (!token) { console.error('请先登录获取Token'); return; } const response = await fetch('http://localhost:8000/admin/auth/me', { headers: { 'Authorization': `Bearer ${token}`, 'Accept': 'application/json' } }); const data = await response.json(); console.log('用户信息:', data); return data; } // 3. 测试登出 async function testLogout() { const token = localStorage.getItem('token'); if (!token) { console.error('请先登录获取Token'); return; } const response = await fetch('http://localhost:8000/admin/auth/logout', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Accept': 'application/json' } }); const data = await response.json(); console.log('登出结果:', data); if (data.success) { localStorage.removeItem('token'); console.log('Token已从localStorage清除'); } return data; } // 运行测试 async function runTests() { console.log('=== 开始API测试 ==='); // 测试登录 console.log('\n1. 测试登录...'); await testLogin(); // 等待1秒 await new Promise(resolve => setTimeout(resolve, 1000)); // 测试获取用户信息 console.log('\n2. 测试获取用户信息...'); await testAuthAPI(); // 等待1秒 await new Promise(resolve => setTimeout(resolve, 1000)); // 测试登出 console.log('\n3. 测试登出...'); await testLogout(); console.log('\n=== 测试完成 ==='); } ``` ### 完整测试示例 ```html