nocobase-plugin-watermark(水印插件)
Github: kevinwonstans/nocobase-plugin-watermark
NocoBase 全局水印插件:用户登录成功后,在整个页面上覆盖半透明水印,显示当前登录用户名和当天日期,防止截图泄密。支持 v1(/admin/)与 v2(/v/admin/)两个界面,均可用。
![水印效果预览]
功能特性
| 需求 | 实现 |
|---|---|
| 登录后显示水印 | 监听 auth:tokenChanged,登录成功立即在页面覆盖半透明水印(用户名 + 日期),pointer-events: none 不干扰任何操作 |
| 公共页面 / 未登录 / 登出后不显示 | 登录页、注册页(/signin、/signup、/forgot-password、/reset-password)及未登录状态自动移除水印 DOM;定时检测保证 30s 内生效 |
| 防止删除水印 DOM | MutationObserver 监听水印节点,被删除后立即重建;另有 5s 定时健康检查,样式被篡改(如改透明度、移背景)也会自动恢复 |
| 可配置项 | 水印文字(支持占位符)、透明度、字号、排列密度(稀疏/中等/密集) |
| 启用水印总开关 | 关闭后立即移除水印 DOM,配置保留不丢失,重新开启即恢复 |
| 双界面支持 | v1(/admin/)与 v2(/v/admin/)客户端同时生效,共用同一套运行时逻辑 |
兼容性
- NocoBase
2.1.x(在 2.1.34 上开发验证) - 数据库无关(配置表
watermarkSettings为普通单例表) - 支持 v1 与 v2 客户端,无需额外配置
nocobase-plugin-watermark.zip (543.6 KB)
