Files
IMTIM-Portal/docs/casdoor-setup.md
2026-04-17 16:27:18 +08:00

205 lines
3.7 KiB
Markdown

# Casdoor v3.18.0 配置手册
本文档详细说明如何配置本地Docker部署的Casdoor实例,以便与base-imtim门户应用集成。
---
## 目录
1. [访问Casdoor管理界面](#1-访问casdoor管理界面)
2. [创建组织](#2-创建组织)
3. [创建应用](#3-创建应用)
4. [配置认证方式](#4-配置认证方式)
5. [配置到base-imtim](#5-配置到base-imtim)
6. [测试登录流程](#6-测试登录流程)
7. [常见问题排查](#7-常见问题排查)
---
## 1. 访问Casdoor管理界面
### 1.1 确认Casdoor运行状态
```bash
docker ps | grep casdoor
```
### 1.2 访问管理后台
```
http://localhost:8000
```
### 1.3 登录
- **用户名**: `admin`
- **密码**: `123` (默认)
> ⚠️ 首次登录后请修改密码
---
## 2. 创建组织
1. 左侧导航栏 → **组织管理****组织**
2. 点击 **添加**
3. 填写:
| 字段 | 值 |
|------|------|
| 组织名称 | `imtim` |
| 显示名称 | `IMTIM Portal` |
| 密码类型 | `salt` |
4. 点击 **保存**
---
## 3. 创建应用
1. 左侧导航栏 → **应用管理****应用**
2. 点击 **添加**
3. 填写配置:
### 基本信息
| 字段 | 值 | 说明 |
|------|------|------|
| 名称 | `base-imtim` | 应用唯一标识 |
| 显示名称 | `IMTIM Portal` | 界面显示名称 |
| 组织 | `imtim` | 选择刚创建的组织 |
### 认证配置 (关键)
| 字段 | 值 | 说明 |
|------|------|------|
| **重定向URL** | `http://localhost:3000/api/auth/callback` | **必须一致** |
| 令牌格式 | `JWT` | |
| 令牌有效期 | `168` | 7天(小时) |
4. 点击 **保存**
5. **复制凭据**:
- Client ID (如: `a129daf893d964c03bfb`)
- Client Secret (如: `c3ecaa0d0e3f315d0a1a164087c88cbdf8324f00`)
---
## 4. 配置认证方式
### 4.1 创建测试用户
1. 左侧导航栏 → **用户管理****用户**
2. 点击 **添加**
3. 填写:
- 组织: `imtim`
- 用户名: 如 `imtim`
- 显示名称
- 密码
- 邮箱 (可选)
4. 点击 **保存**
---
## 5. 配置到base-imtim
### 5.1 创建后端配置文件
```bash
cd backend
cp .env.example .env
```
### 5.2 编辑 .env 文件
```env
# Casdoor配置
CASDOOR_SERVER_URL=http://localhost:8000
CASDOOR_CLIENT_ID=你的ClientID
CASDOOR_CLIENT_SECRET=你的ClientSecret
CASDOOR_ORG_NAME=imtim
CASDOOR_APP_NAME=base-imtim
CASDOOR_REDIRECT_URI=http://localhost:3000/api/auth/callback
# JWT配置
JWT_SECRET=your-super-secret-jwt-key
# 应用配置
APP_PORT=3001
```
---
## 6. 测试登录流程
### 6.1 启动应用
```bash
# 后端
cd backend && npm run dev
# 前端 (新终端)
cd frontend && npm run dev
```
### 6.2 测试步骤
1. 访问 http://localhost:3000
2. 点击登录按钮
3. 跳转到Casdoor登录页面
4. 使用测试用户登录
5. 登录成功后应自动跳转到 /dashboard
---
## 7. 常见问题排查
### 7.1 重定向URL不匹配
**错误**: `redirect URI mismatch`
**解决**: 检查Casdoor应用配置中的重定向URL是否为 `http://localhost:3000/api/auth/callback`
### 7.2 获取用户信息失败
**错误**: `Authentication failed: Failed to get user info`
**解决**: Casdoor v3.x 使用 `/api/get-account` 而非 `/api/userinfo`
### 7.3 Client ID或Secret错误
**错误**: `invalid_client`
**解决**: 重新从Casdoor复制Client ID和Secret
### 7.4 Code已使用
**错误**: `authorization code has been used`
**说明**: OAuth code只能用一次,刷新页面重新登录
---
## 附录: Casdoor Docker部署
```yaml
version: '3.8'
services:
casdoor:
image: casbin/casdoor:v3.18.0
ports:
- "8000:8000"
environment:
- driverName=sqlite3
- dataSourceName=casdoor.db
volumes:
- ./casdoor-data:/conf
```
---
**文档版本**: 1.1
**最后更新**: 2026-04-16
**适用Casdoor版本**: v3.18.0