Skip to main content

Module auth

Module auth 

Source
Expand description

管理台的登录保护。

§为什么保护范围是「除了 /health 之外全部」

管理台那个 HTML 页面本身没什么可保护的 —— 真正危险的是它调的接口: abort 能中止在途事务、retry 能改调度、submit 能凭空造事务。 只给页面加登录而把 /api/dtmsvr/* 敞着,等于没加。 所以这里是全局中间件,白名单只有 /health(反向代理的健康检查要用) 和 /login 本身。

§没配密码时不启用

DTMRS_ADMIN_PASSWORD 没设就完全不拦 —— 内网/本地开发的用法不变。 但一旦你打算暴露到公网,这个变量就是必须的main.rs 在监听 非回环地址且没配密码时会打醒目警告。

§会话存在内存里

单进程 TC,没必要引入签名/JWT 那一套。代价是重启后所有人要重新登录, 对管理台来说完全可以接受。多实例部署时各实例的会话不互通, 前面挂负载均衡的话要开会话保持(或者干脆每个实例单独登录)。

Structs§

Auth
LoginForm

Functions§

guard
全局中间件:除 /health/login 外都要求已登录。
login_page
login_submit
logout