diff --git a/backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java b/backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
index 97f81ef1..2d2f2dc5 100644
--- a/backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
+++ b/backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
@@ -75,11 +75,16 @@ public class SysUserVo implements Serializable {
private String sex;
/**
- * 头像地址
+ * 头像 OSS ID
*/
- @Translation(type = TransConstant.OSS_ID_TO_URL)
private Long avatar;
+ /**
+ * 头像访问地址
+ */
+ @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "avatar")
+ private String avatarUrl;
+
/**
* 密码
*/
diff --git a/docs/开发文档/API/用户认证登录API.md b/docs/开发文档/API/用户认证登录API.md
index 9147c439..ac6f51fb 100644
--- a/docs/开发文档/API/用户认证登录API.md
+++ b/docs/开发文档/API/用户认证登录API.md
@@ -395,7 +395,8 @@ loginWithEncryption()
"email": "admin@example.com",
"phonenumber": "13800138000",
"sex": "1",
- "avatar": "/profile/avatar/default.jpg",
+ "avatar": "1938120323613728770",
+ "avatarUrl": "http://example.com/ruoyi/2025/08/31/xxxx.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&...",
"status": "0",
"loginIp": "127.0.0.1",
"loginDate": "2025-01-26 10:30:00",
@@ -409,6 +410,13 @@ loginWithEncryption()
}
```
+**字段说明补充**:
+
+- `avatar`:始终返回 `sys_user.avatar` 中存储的 OSS ID(字符串),用于鉴权下载接口 `/resource/oss/download/{ossId}`。
+- `avatarUrl`:系统通过 `TransConstant.OSS_ID_TO_URL` 规则实时翻译得到的可直接访问地址(MinIO 预签名 URL),供无需链路改造的场景快速显示;有效期受 OSS 策略控制。
+
+前端如需在带 Token 的受保护组件(如 `ImagePreview`)中展示,请优先使用 `avatar` 并通过统一的认证下载逻辑获取图片,避免直接暴露临时 URL。
+
**超级管理员权限说明**:
admin 用户具有系统最高权限`*:*:*`,可以访问所有功能模块和执行所有操作。
@@ -663,7 +671,9 @@ methods: {
---
**📝 维护**: 用户认证登录 API 文档
-**🔄 更新**: 2025-01-03
+**🔄 更新记录**:
+- 2025-11-28:`/system/user/getInfo` 增加 `avatarUrl` 字段,并明确 `avatar` 返回 OSS ID
+- 2025-01-03:文档初始化
**📁 文件**: 用户认证登录 API.md
## 获取具有指定权限的用户列表
@@ -693,7 +703,8 @@ methods: {
deptId: string; // 部门ID
deptName: string; // 部门名称
};
- avatar: string; // 头像URL
+ avatar: string; // 头像OSS ID
+ avatarUrl?: string; // 头像访问URL(可选,预签名)
}[];
total: number; // 总记录数
}
@@ -713,7 +724,8 @@ methods: {
"deptId": "1",
"deptName": "后勤部"
},
- "avatar": "http://example.com/avatar.jpg"
+ "avatar": "1938120323613728770",
+ "avatarUrl": "http://example.com/avatar.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}
],
"total": 1
diff --git a/docs/开发文档/ImagePreview组件使用说明.md b/docs/开发文档/ImagePreview组件使用说明.md
index dc31f3a5..70439eca 100644
--- a/docs/开发文档/ImagePreview组件使用说明.md
+++ b/docs/开发文档/ImagePreview组件使用说明.md
@@ -65,6 +65,36 @@ ImagePreview 是一个图片预览组件,支持两种模式:
```
+### 4. 顶部个人头像(自动识别OSS ID)
+
+```vue
+
+
+
+
+
+```
+
+> ✅ 用于首页 `Navbar` 头像区域时,`avatarIsOssId` 会自动识别当前值是否为 OSS ID,从而在带 Token 的 `/resource/oss/download/{ossId}` 接口与传统 URL 之间无缝切换,保证头像始终通过认证通道加载。
+
## 技术实现
### 核心功能
@@ -126,6 +156,7 @@ const urlCache = ref