npm run dev- 访问 http://localhost:3000
- 点击右上角的"注册"按钮
- 填写表单:
- 用户名:testuser(至少 3 个字符)
- 密码:password123(至少 6 个字符)
- 确认密码:password123
- 点击"注册"按钮
- 应该看到注册成功的提示,模态框关闭
- 如果未登录,点击"登录"按钮
- 填写表单:
- 用户名:testuser
- 密码:password123
- 点击"登录"按钮
- 应该看到登录成功,页面显示"欢迎, testuser"
- 在编辑器中修改内容
- 点击"导出图片"按钮
- 应该成功下载 PNG 图片
- 点击右上角的"退出"按钮
- 点击"导出图片"按钮
- 应该弹出登录模态框
- 预览框下方应该显示"请先注册/登录"黄色提示
- 尝试注册 2 个字符的用户名 → 应该显示错误
- 尝试注册 21 个字符的用户名 → 应该显示错误
- 尝试使用特殊字符的用户名 → 应该显示错误
- 尝试使用 5 个字符的密码 → 应该显示错误
- 尝试使用 51 个字符的密码 → 应该显示错误
- 两次输入的密码不一致 → 应该显示错误
- 尝试用相同用户名注册
- 应该显示"用户名已被注册"错误
- 尝试用错误的密码登录
- 应该显示"用户名或密码错误"
curl -X POST http://localhost:3000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"testuser","password":"password123","confirmPassword":"password123"}'curl -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"testuser","password":"password123"}' \
-c cookies.txtcurl -X POST http://localhost:3000/api/auth/verify \
-b cookies.txtcurl -X POST http://localhost:3000/api/auth/logout \
-b cookies.txt尝试注册包含以下内容的用户名:
<script>alert('XSS')</script>
<img src=x onerror=alert(1)>预期:应该被清理或拒绝
尝试从不同域发送 POST 请求到登录端点
预期:应该被 SameSite Cookie 策略阻止
多次尝试使用错误密码登录
预期:可以成功登录(暂无限速),但 bcrypt 哈希增加了破解成本
推荐在以下浏览器中测试:
- Chrome/Edge(最新版本)
- Firefox(最新版本)
- Safari(最新版本)
测试不同屏幕尺寸:
- 桌面(1920x1080)
- 平板(768x1024)
- 手机(375x667)
- 当前没有实现速率限制(Rate Limiting)
- 没有验证码功能
- 没有双因素认证(2FA)
- 用户数据存储在文件中(生产环境建议使用数据库)
- 没有密码重置功能