123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <!DOCTYPE html>
- <html>
- <head>
- <title>TaskMaster API 测试</title>
- <style>
- body { font-family: Arial, sans-serif; margin: 20px; }
- .test-section { margin: 20px 0; padding: 15px; border: 1px solid #ddd; }
- .result { margin-top: 10px; padding: 10px; background: #f5f5f5; }
- .error { background: #ffe6e6; }
- .success { background: #e6ffe6; }
- button { margin: 5px; padding: 8px 15px; }
- input { margin: 5px; padding: 5px; }
- </style>
- </head>
- <body>
- <h1>TaskMaster API 测试</h1>
-
- <div class="test-section">
- <h3>1. 用户注册</h3>
- <input type="email" id="regEmail" placeholder="邮箱" value="test@example.com">
- <input type="password" id="regPassword" placeholder="密码" value="12345678">
- <button onclick="testRegister()">注册</button>
- <div id="regResult" class="result"></div>
- </div>
-
- <div class="test-section">
- <h3>2. 用户登录</h3>
- <input type="email" id="loginEmail" placeholder="邮箱" value="test@example.com">
- <input type="password" id="loginPassword" placeholder="密码" value="12345678">
- <button onclick="testLogin()">登录</button>
- <div id="loginResult" class="result"></div>
- </div>
-
- <div class="test-section">
- <h3>3. 创建任务</h3>
- <input type="text" id="taskTitle" placeholder="任务标题" value="测试任务">
- <input type="text" id="taskDesc" placeholder="任务描述" value="这是一个测试任务">
- <button onclick="testCreateTask()">创建任务</button>
- <div id="createTaskResult" class="result"></div>
- </div>
-
- <div class="test-section">
- <h3>4. 获取任务列表</h3>
- <button onclick="testGetTasks()">获取任务</button>
- <div id="getTasksResult" class="result"></div>
- </div>
- <script>
- let authToken = '';
-
- async function testRegister() {
- const email = document.getElementById('regEmail').value;
- const password = document.getElementById('regPassword').value;
-
- try {
- const response = await fetch('/api/auth/register', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ email, password })
- });
-
- const data = await response.json();
- const resultDiv = document.getElementById('regResult');
-
- if (response.ok) {
- authToken = data.token;
- resultDiv.className = 'result success';
- resultDiv.innerHTML = `注册成功!<br>用户ID: ${data.userId}<br>Token: ${data.token.substring(0, 20)}...`;
- } else {
- resultDiv.className = 'result error';
- resultDiv.innerHTML = `注册失败: ${data.error || JSON.stringify(data)}`;
- }
- } catch (error) {
- document.getElementById('regResult').className = 'result error';
- document.getElementById('regResult').innerHTML = `请求失败: ${error.message}`;
- }
- }
-
- async function testLogin() {
- const email = document.getElementById('loginEmail').value;
- const password = document.getElementById('loginPassword').value;
-
- try {
- const response = await fetch('/api/auth/login', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ email, password })
- });
-
- const data = await response.json();
- const resultDiv = document.getElementById('loginResult');
-
- if (response.ok) {
- authToken = data.token;
- resultDiv.className = 'result success';
- resultDiv.innerHTML = `登录成功!<br>用户ID: ${data.userId}<br>Token: ${data.token.substring(0, 20)}...`;
- } else {
- resultDiv.className = 'result error';
- resultDiv.innerHTML = `登录失败: ${data.error || JSON.stringify(data)}`;
- }
- } catch (error) {
- document.getElementById('loginResult').className = 'result error';
- document.getElementById('loginResult').innerHTML = `请求失败: ${error.message}`;
- }
- }
-
- async function testCreateTask() {
- if (!authToken) {
- alert('请先登录!');
- return;
- }
-
- const title = document.getElementById('taskTitle').value;
- const description = document.getElementById('taskDesc').value;
-
- try {
- const response = await fetch('/api/tasks', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Authorization': `Bearer ${authToken}`
- },
- body: JSON.stringify({ title, description, priority: 'medium' })
- });
-
- const data = await response.json();
- const resultDiv = document.getElementById('createTaskResult');
-
- if (response.ok) {
- resultDiv.className = 'result success';
- resultDiv.innerHTML = `任务创建成功!<br>ID: ${data.task.id}<br>标题: ${data.task.title}`;
- } else {
- resultDiv.className = 'result error';
- resultDiv.innerHTML = `创建失败: ${data.error || JSON.stringify(data)}`;
- }
- } catch (error) {
- document.getElementById('createTaskResult').className = 'result error';
- document.getElementById('createTaskResult').innerHTML = `请求失败: ${error.message}`;
- }
- }
-
- async function testGetTasks() {
- if (!authToken) {
- alert('请先登录!');
- return;
- }
-
- try {
- const response = await fetch('/api/tasks', {
- headers: {
- 'Authorization': `Bearer ${authToken}`
- }
- });
-
- const data = await response.json();
- const resultDiv = document.getElementById('getTasksResult');
-
- if (response.ok) {
- resultDiv.className = 'result success';
- resultDiv.innerHTML = `获取成功!<br>任务数量: ${data.tasks.length}<br>详情: ${JSON.stringify(data, null, 2)}`;
- } else {
- resultDiv.className = 'result error';
- resultDiv.innerHTML = `获取失败: ${data.error || JSON.stringify(data)}`;
- }
- } catch (error) {
- document.getElementById('getTasksResult').className = 'result error';
- document.getElementById('getTasksResult').innerHTML = `请求失败: ${error.message}`;
- }
- }
- </script>
- </body>
- </html>
|