wxyzh/dsh-auth-proxy

wxyzh★ 0TypeScriptLast synced: 2026-08-16

Open on GitHub

README excerpt

dsh-auth-proxy DSH Web GUI 的令牌鉴权反向代理插件:在 dsh web 前面加一道静态令牌登录墙。宿主侧在 127.0.0.1: (默认 8443)监听,未认证访问显示内置登录页,校验令牌后签发 HttpOnly 会话 cookie,再把 HTTP 与 WebSocket 流量转发给回环 dsh webserver。 零 DSH 源码改动 : webserver 保持监听 127.0.0.1:3080 ,本插件持有对外 socket。 功能 - 内置登录页(POST / dsh auth/login 校验令牌),登出走 POST / dsh auth/logout 。 - 令牌比对使用 SHA-256 + timingSafeEqual ,避免时序侧信道。 - 会话 cookie: HttpOnly; SameSite=Lax; Path=/ , 永久有效 (Max-Age 10 年)且 无状态 : 值为 payload.signature (HMAC-SHA256,密钥由令牌派生),服务端不存会话, 重启后 cookie 依然有效 ; 更换令牌会使所有已登录会话立即失效 (全体下线),登出仅清除客户端 cookie。 - IP 白名单(支持 CIDR,IPv4)可整体绕过令牌;失败登录锁定(按 IP,阈值与时长可配)。 - 配置实时可改:Web UI「设置 插件配置」卡片(走插件自有 /api/dsh-auth-proxy/config ), 无需改文件;对纯 HTTP 局域网地址自动注入 crypto.randomUUID polyfill,保证前端 RPC 可用。 - 局域网地址可正常编辑 web-ui 设置(主题、语言、插件配置等):dsh web 客户端按页面源判定回环, 非回环来源会把设置面降级为只读;代理转发 HTML 时注入 loopback-compat 脚本,把 connection.isLoopback 打开——与代理把 Host/Origin 改回回环后服务端按回环放行的事实一致, 鉴权仍由本插件令牌墙把关。 - 状态可视:宿主终端直接打印 dsh-auth-proxy: listening on http:// : (console.log 镜像, dsh web 不把插件 ctx.logger 打到终端),设置卡片同样显示实际监听地址;通过 accessUrls 声明的 入口地址(可含 HTTPS 域名)会展示在卡片与登录页,多域名场景一眼可知该用哪个 URL。 - 无 TLS,禁绑通配/公网 :监听地址仅允许回环与内网(默认 127.0.0.1 ); 0.0.0.0 、 :: 与公网 IP 在保存与启动时都会被拒绝。外部访问请在前面挂 TLS 反向代理,回指本监听地址。 安装与卸载 dsh plugin…

View full README on GitHub →
Tools / Devdshdsh-plugindsh-plugins

Category