# 接口文档模板

## 接口信息

- **接口名称**: 执行Salesforce登出操作（源ORG）
- **接口路径**: /salesforce/login/logout
- **请求方法**: POST
- **模块归属**: datai-salesforce-auth
- **版本号**: v1.0
- **创建日期**: 2026-01-14
- **最后更新**: 2026-01-14

## 功能描述

执行Salesforce源ORG的登出操作，从登录历史记录中获取最新的成功登录信息，并使用该Session ID执行登出。登出成功后会清除本地缓存的Session信息。

## 请求参数

无需请求参数。

## 响应数据

### 成功响应

**HTTP 状态码**: 200 OK

```json
{
  "code": 200,
  "message": "登出成功",
  "data": null
}
```

### 失败响应

**HTTP 状态码**: 400/500

```json
{
  "code": 400,
  "message": "未找到登录历史记录",
  "data": null
}
```

| 错误码 | 错误信息 | 描述 |
|--------|----------|------|
| 400 | 未找到登录历史记录 | 系统中没有找到登录历史记录 |
| 400 | 登出失败 | 登出操作执行失败 |
| 500 | 登出失败: 系统错误 | 系统内部错误 |

## 接口示例

### 请求示例

```bash
curl -X POST "http://localhost:8080/salesforce/login/logout" \
  -H "Content-Type: application/json"
```

### 响应示例

**成功**:

```json
{
  "code": 200,
  "message": "登出成功",
  "data": null
}
```

**失败**:

```json
{
  "code": 400,
  "message": "未找到登录历史记录",
  "data": null
}
```

## 错误处理

1. **未找到登录历史记录**: 检查是否已经登录过
2. **登出失败**: 检查Session ID是否有效
3. **系统错误**: 记录错误日志并返回通用错误信息

## 注意事项

1. 登出操作会从登录历史记录中获取最新的成功登录信息
2. 登出成功后会清除本地缓存的Session信息
3. 如果没有登录历史记录，登出操作将失败
4. 登出操作不影响其他ORG的登录状态

## 相关接口

- [登录操作](0001-do-login.md) - 执行Salesforce登录操作
- [获取当前登录信息](0003-current.md) - 获取当前登录信息
- [自动登录](0004-auto-login.md) - 自动登录（支持源ORG和目标ORG）

## 实现细节

1. 从登录历史记录中获取最新的成功登录信息
2. 提取Session ID、登录类型和ORG类型
3. 调用SalesforceLoginService执行登出
4. 返回登出结果

## 测试信息

### 测试环境

- **环境**: 本地开发环境
- **版本**: v1.0

### 测试用例

| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|----------|----------|----------|----------|------|
| 登出成功 | 无 | 返回登出成功 | 返回登出成功 | 通过 |
| 未登录时登出 | 无 | 返回未找到登录历史记录 | 返回未找到登录历史记录 | 通过 |
| Session已过期 | 无 | 返回登出失败 | 返回登出失败 | 通过 |
