大屏外链分享
为大屏生成免登录外链,配置访问密码与 IP 白名单(精确 IP、CIDR、通配),说明开关、密码锁定、访问票据与公开接口,并与报表公开链接的规则做对比。
概述
外链分享让没有 Sight Wall 账号的观众通过一个网址打开大屏,适合上电视墙、大厅屏幕或发给合作方查看。外链免登录,访问受三层控制:
- 「开启外链」开关:关闭后链接立即失效。
- 「访问密码」:可选。
- 「IP 白名单」:可选,限制哪些网络可以访问。
外链打开的是大屏已发布的版本;大屏尚未发布时,回退到草稿内容。
注意:大屏外链只有分享这一种对外方式。当前版本的大屏没有像报表那样的签名嵌入(
_s免登),需要嵌入业务系统时,把外链地址放进 iframe,并用访问密码或 IP 白名单控制访问。
功能入口
Sight Wall > 大屏设计 > 大屏管理 列表中,每张大屏卡片右下角有「外链分享」图标,点击打开「外链分享」对话框。
操作步骤
- 在「大屏管理」列表找到目标大屏,点击卡片上的「外链分享」图标。
- 确认「开启外链」处于打开状态。
- 设置「访问密码」:打开开关,在输入框里填写密码。不需要密码时保持关闭。
- 在「IP 白名单」中填写允许访问的网络,逗号或换行分隔。留空表示不限制。
- 点击「保存」,提示「外链设置已保存」。
- 在「外链地址」一栏点击「复制」,把地址发给观众。
对话框顶部有一条提示:「强烈建议同时设置访问密码和 IP 白名单」,外链免登录访问,链接外泄后任何人都能看到大屏数据。
属性/参数说明
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 开启外链 | 外链总开关。关闭后链接立即失效,访问者看到的提示与大屏不存在相同 | 默认开启 |
| 外链地址 | 只读,生产包为 hash 路由,形如 https://<平台地址>/#/share/<大屏ID>(开发环境的 history 路由为 /share/<大屏ID>)。请直接复制对话框里的地址 |
系统生成 |
| 访问密码 | 打开开关并填写后启用。开关打开但输入框留空,保存时沿用原来的密码;关闭开关并保存则清除密码 | 默认关闭 |
| IP 白名单 | 允许访问的客户端 IP | 留空表示不限制 |
IP 白名单支持三种写法,用逗号、空格或换行分隔:
| 写法 | 示例 | 含义 |
|---|---|---|
| 精确 IP | 10.0.0.8 |
只放行该地址 |
| CIDR | 192.168.1.0/24 |
放行网段,仅支持 IPv4 |
| 通配 | * 或 0.0.0.0/0 |
放行所有地址 |
访问规则
观众打开外链后,依次检查:
- 外链开关是否打开,未打开时提示「大屏不存在或已删除」。
- 客户端 IP 是否在白名单内(白名单为空则视为通过),不在名单内提示「当前网络(IP)不在该大屏的允许访问范围内」。
- 如果设置了访问密码,页面显示「该大屏受密码保护,请输入访问密码」,输入正确后进入。
| 访问密码 | IP 白名单 | 结果 |
|---|---|---|
| 未设置 | 未设置 | 任何人凭链接可访问 |
| 未设置 | 已设置 | 名单内的 IP 可访问,其他 IP 被拒绝 |
| 已设置 | 未设置 | 所有 IP 都需要输入密码 |
| 已设置 | 已设置 | 只有名单内的 IP 才能输入密码,名单外的 IP 直接被拒绝,输入密码也没用 |
密码相关限制:
- 同一大屏、同一 IP 在 10 分钟内累计输错 10 次后被锁定,提示「访问密码错误次数过多,请稍后再试」,窗口结束后恢复。输对一次则计数清零。计数保存在各服务节点内存中,集群下各节点各自计数。
- 观众进入大屏后获得访问票据,有效期 12 小时。票据过期时页面会用已输入的密码自动换取新票据,长期挂着的大屏不需要人工刷新。
与报表公开链接的区别
| 对比项 | 大屏外链 | 报表公开链接 |
|---|---|---|
| 地址 | /#/share/<大屏ID> |
access.html?reportId=<报表ID> |
| 两项都不设置 | 任何人可访问 | 拒绝,提示未启用公开查看 |
| IP 白名单的作用 | 限制门槛:不在名单内一律拒绝 | 免密通道:在名单内可跳过密码 |
| IP 写法 | 精确 IP、CIDR、通配 | 只支持精确 IP |
| 关闭开关 | 有「开启外链」开关 | 无开关,清空密码和白名单即失效 |
两者规则不同,配置时不要混用。报表侧的规则见报表公开链接。
公开接口
外链页面通过以下接口取数,接口都不需要 satoken,第三方一般不需要直接调用:
| 接口 | 方法 | 说明 |
|---|---|---|
/api/public/screen/{id}/info |
GET | 返回大屏名称 name、是否需要密码 needPassword、当前 IP 是否允许 ipAllowed |
/api/public/screen/{id}/view |
POST | 请求体 {"password":"..."},校验 IP 与密码,成功后返回 name、content(大屏内容)、shareToken(访问票据) |
/api/public/screen/{id}/dataset/query |
POST | 大屏自动刷新取数,请求体带 shareToken、datasetName,可选 parameters、parameterTypes。票据失效返回 4093 |
BASE=https://your-domain
ID=<大屏ID>
curl -s "$BASE/api/public/screen/$ID/info"
curl -s -X POST "$BASE/api/public/screen/$ID/view" \
-H 'Content-Type: application/json' \
-d '{"password":"123456"}'
返回给匿名观众的大屏内容会去掉 API 数据集的凭据,取数由服务端完成。外链页面不支持实时推送(SSE),数据靠轮询刷新。
示例
会议室大屏只允许内网访问,同时防止内网其他人随手打开:
- 「开启外链」保持打开。
- 打开「访问密码」开关,填写一个密码。
- 「IP 白名单」填写
10.20.0.0/16。 - 保存后把外链地址配置到会议室电脑的浏览器,首次输入密码后长期播放。
预期:内网 10.20.x.x 的设备输入密码后可以打开大屏;外网设备提示 IP 不在允许范围。
注意事项
注意:外链是免登录访问,没有配置密码和白名单时,知道链接的人都能看到大屏数据。
提示:大屏在运行配额(最大大屏数)内计数。外链每次查看和取数轮询都会登记运行,超过许可的大屏数量上限时外链会被拒绝,详见授权配额。
提示:把外链嵌入业务系统的 iframe 时,若平台前置了反向代理,需要保证代理把真实客户端 IP 传给平台,否则 IP 白名单按代理地址判断。