Skip to content

feat: 支持首次登录强制修改密码及自助改密页面 - #393

Open
fatmanverse wants to merge 10 commits into
bjdgyc:devfrom
fatmanverse:feat/self-service-change-pwd
Open

feat: 支持首次登录强制修改密码及自助改密页面#393
fatmanverse wants to merge 10 commits into
bjdgyc:devfrom
fatmanverse:feat/self-service-change-pwd

Conversation

@fatmanverse

Copy link
Copy Markdown

新增用户自助修改密码能力,并支持新建用户首次登录前强制改密。

服务端:

  • User 模型新增 change_pwd 字段(xorm Sync2 自动建列,存量用户不受影响)
  • 新增全局开关 force_first_change_pwd 与门户地址 portal_url 配置项
  • 后台新建/批量导入用户时按开关打标
  • VPN 登录校验通过后拦截未改密用户,拒登并提示前往改密页

自助改密页面(内置于 VPN 服务 :443):

  • 新增公开路由 GET/POST /pwd,内联 HTML 表单
  • 新增 dbdata.UserChangePassword: 校验旧密码(仅 PIN 码)后更新并清除标记
  • 复用 lockManager 防爆限流,复用 PasswordVerify 兼容明文/bcrypt
  • 用户不存在与旧密码错误返回统一提示,防止用户名枚举
  • CSRF 双提交校验,html/template 自动转义防 XSS

文档:

  • server-sample.toml 补充两个配置项说明
  • doc/question.md 新增功能与使用说明

bjdgyc and others added 10 commits March 26, 2026 10:22
新增用户自助修改密码能力,并支持新建用户首次登录前强制改密。

服务端:
- User 模型新增 change_pwd 字段(xorm Sync2 自动建列,存量用户不受影响)
- 新增全局开关 force_first_change_pwd 与门户地址 portal_url 配置项
- 后台新建/批量导入用户时按开关打标
- VPN 登录校验通过后拦截未改密用户,拒登并提示前往改密页

自助改密页面(内置于 VPN 服务 :443):
- 新增公开路由 GET/POST /pwd,内联 HTML 表单
- 新增 dbdata.UserChangePassword: 校验旧密码(仅 PIN 码)后更新并清除标记
- 复用 lockManager 防爆限流,复用 PasswordVerify 兼容明文/bcrypt
- 用户不存在与旧密码错误返回统一提示,防止用户名枚举
- CSRF 双提交校验,html/template 自动转义防 XSS

文档:
- server-sample.toml 补充两个配置项说明
- doc/question.md 新增功能与使用说明
@fatmanverse
fatmanverse changed the base branch from main to dev July 21, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants