个人中心与我的签名
个人中心位于后台头像菜单 → 个人中心(/profile),提供个人资料、头像、账号安全、我的签名、通知设置、设备、个人日志与授权应用管理。
保存自己的签名
在「我的签名」中手写并保存,之后可在允许复用的表单字段或审批节点中确认使用;也可以重新手写、更换或删除模板。系统不会把页面展示的签名预览自动提交,每次签署仍需确认本次使用。
签名模板按当前账号和有效租户范围隔离,登录同一账号的桌面端与移动审批使用同一份模板。平台账号切换租户视角后,模板也随有效租户切换。模拟登录期间禁止读取、维护或使用个人签名,也不能生成被模拟人的签署证据;正常转办、委派审批记录实际处理人的签名。
| 规则 | 行为 |
|---|---|
| 图片格式 | 只接受 PNG 图片,服务端实际解码,不接受任意图片 URL |
| 大小与尺寸 | 图片最大 512 KiB,最大 2048 × 1024 像素;空白画布不能保存 |
| 私有存储 | 图片保存为 restricted 托管文件,通用文件内容接口不能读取;本人接口返回图像预览 |
| 更新 | 保持模板 ID,版本号递增,新图片替换当前模板文件引用 |
| 删除 | 删除当前模板并释放文件引用;已经签署的单据不发生变化 |
| 账号 / 租户删除 | 在身份删除事务内释放签名模板文件引用,保留待回收文件记录,由统一 GC 删除对象 |
| 过期选择 | 页面选择模板后,如模板被更换或删除,提交时返回冲突,需刷新重新选择 |
| 初始化 | 种子只配置演示流程,不为任何用户预置个人签名 |
保存或删除签名的审计只记录操作与模板元信息(ID、版本、更新时间),请求、响应和操作前后差异快照都不记录签名图像。个人签名不放入公开头像、用户列表或通用偏好 JSON。
本人接口
| 方法 | 路径 | 输入 / 响应 |
|---|---|---|
| GET | /api/auth/signature | 返回 {id, version, dataUrl, updatedAt},未保存时返回 null |
| PUT | /api/auth/signature | 输入 {dataUrl},返回保存后的模板 |
| DELETE | /api/auth/signature | 删除当前账号、当前有效租户范围的模板 |
接口只使用认证上下文确定账号,不接受请求指定其他用户。模板读取与保存响应使用 Cache-Control: no-store。
签署时固定证据
业务提交只接受两种输入:本次手写的 {source:'drawn', dataUrl},或选择模板的 {source:'saved', signatureId, version}。服务端核验策略与归属后,生成图片、来源、签署人 ID/姓名、签署时间、模板 ID/版本的快照;请求不能伪造签署人或时间。
后续更换或删除个人模板,不改变已保存的签名快照和审批记录。相同草稿中未修改的已保存签名可以继续回显;克隆为新申请时必须重新确认签署。表单字段与审批节点各自的策略见表单设计与节点配置,批量规则见审批操作。