# 客户端管理功能
- - -
## 版本 >= 2.X

## 客户端管理页面

![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图")

### 客户端管理字段说明
| 字段名称           | 取值说明                       | 注意事项                           |
|----------------|----------------------------|--------------------------------|
| 客户端id          | 由后端生成，用于前端登录校验以及接口数据加密     | 无法修改，不要删除默认数据，否则会报错            |
| 客户端key         | 前端自定义                      | 无法修改，不要删除默认数据，否则会报错            |
| 客户端秘钥          | 前端自定义                      | 无法修改，不要删除默认数据，否则会报错            |
| 授权类型           | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式         |
| 设备类型           | PC端、APP端                   |                                |
| Token活跃超时时间    | 自定义                        | 指定时间无操作则过期（单位：秒），默认30分钟（1800秒） |
| Token固定超时时间    | 自定义                        | 指定时间必定过期（单位：秒），默认七天（604800秒）   |

### 前后端使用新的客户端id

步骤如下：
1. 前端管理页面生成新的客户端id。
2. 将新的客户端id复制到前端配置文件。

![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图")

## 新增自定义客户端

### 步骤一：新增客户端数据(例如增加小程序端)

![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图")

![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图")

### 步骤二：配置前端请求头信息

需要在全局请求头 header 中增加 cientid <br>
确保客户端所有请求都携带此id 可参考项目 `request.ts`

![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图")

`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。

**重点：不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)**

## 新增自定义登录方式授权类型

**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可**

如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md)

### 步骤一：新增字典数据

![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图")

![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图")

### 步骤二：新增/修改客户端数据

### 步骤三：后端新增认证策略

新增策略实现类实现 `IAuthStrategy` 接口。<br>

![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图")

参照已有策略实现类实现自定义参数校验登录方法逻辑。<br>

![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图")

**注意修改 `@Service` 名称保证规范性**

![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图")

`LoginBody` 校验参数（可自定义）<br>

![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图")

例如 扩展小程序登录参数 只需要继承 `LoginBody <br>

![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")`

校验分组（可自定义）<br>

![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图")