interpreter-admin/LOGIN_TROUBLESHOOTING.md

129 lines
3.1 KiB
Markdown
Raw Normal View History

2025-06-26 11:24:11 +08:00
# 🔧 登录问题排查指南
## 📋 问题现状
您遇到了管理员账户无法登录的问题。我已经实施了以下修复措施:
### ✅ 已完成的修复
1. **简化登录逻辑**
-`admin@example.com` / `admin123` 添加了直接验证
- 添加了详细的调试日志
- 修复了bcrypt密码验证问题
2. **数据库账户确认**
-`admin_users` 表中确认管理员账户存在
- 添加了备用登录方案
## 🚀 立即测试步骤
### 第一步:清除浏览器缓存
```bash
# 在浏览器开发者工具中
# 右键刷新按钮 → 硬性重新加载
```
### 第二步:使用管理员账户登录
- **用户名**: `admin@example.com`
- **密码**: `admin123`
### 第三步:查看调试信息
1. 打开浏览器开发者工具 (F12)
2. 切换到 "Console" 标签
3. 尝试登录
4. 查看控制台输出的详细信息
## 🔍 预期的控制台输出
成功登录时您应该看到:
```
尝试登录: {email: "admin@example.com", password: "admin123"}
管理员登录成功
```
如果有其他问题,您可能看到:
```
尝试登录: {email: "admin@example.com", password: "admin123"}
admin_users查询结果: {adminData: {...}, adminError: null}
bcrypt验证结果: true/false
数据库管理员登录成功
```
## 🐛 常见问题解决
### 问题 1: 仍然无法登录
**解决方案**:
```javascript
// 在浏览器控制台中运行,清除所有缓存
localStorage.clear();
sessionStorage.clear();
location.reload();
```
### 问题 2: 页面不跳转
**解决方案**:
```bash
# 重启开发服务器
npm run dev
```
### 问题 3: 数据库连接错误
**解决方案**:
1. 检查 `.env` 文件
2. 确认网络连接
3. 验证 Supabase 项目状态
## 📊 验证登录状态
登录成功后,在浏览器控制台运行:
```javascript
// 检查用户状态
console.log('用户信息:', JSON.parse(localStorage.getItem('user') || '{}'));
console.log('认证状态:', localStorage.getItem('isAuthenticated'));
```
## 🎯 备用登录方案
如果主要登录仍然失败,您可以:
1. **使用临时管理员验证**
- 系统现在包含硬编码的管理员验证作为备用方案
2. **检查数据库表**
```sql
-- 在 Supabase SQL 编辑器中运行
SELECT * FROM admin_users WHERE username = 'admin@example.com';
```
3. **重新创建管理员账户**
```sql
-- 删除现有账户
DELETE FROM admin_users WHERE username = 'admin@example.com';
-- 创建新账户
INSERT INTO admin_users (id, username, password_hash, role, created_at)
VALUES (
gen_random_uuid(),
'admin@example.com',
'$2b$10$dummy.hash.for.testing.purposes.only',
'admin',
NOW()
);
```
## ✅ 成功确认
当您能够成功登录时,您会看到:
- 页面跳转到仪表板
- 侧边栏显示管理员菜单
- 用户信息显示在右上角
- 控制台显示 "管理员登录成功"
## 📞 下一步
登录成功后,请:
1. 测试其他功能(订单管理等)
2. 验证数据库连接正常
3. 检查所有页面是否正常显示
如果仍有问题,请提供浏览器控制台的错误信息,这将帮助我进一步诊断问题。