129 lines
3.1 KiB
Markdown
129 lines
3.1 KiB
Markdown
# 🔧 登录问题排查指南
|
|
|
|
## 📋 问题现状
|
|
|
|
您遇到了管理员账户无法登录的问题。我已经实施了以下修复措施:
|
|
|
|
### ✅ 已完成的修复
|
|
|
|
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. 检查所有页面是否正常显示
|
|
|
|
如果仍有问题,请提供浏览器控制台的错误信息,这将帮助我进一步诊断问题。 |