Admin 业务网页当前无需登录即可访问。需要实现首次管理员初始化和网页登录,同时保证 Client API 路由完全不经过 Web 登录中间件。
users
web_sessions
admin/repository/db.go
golang.org/x/crypto/bcrypt
repository/user.go
service/auth.go
handler/web/auth.go
templates/auth/
/setup
/api/v1/client/*
HttpOnly
SameSite=Lax
Path=/
Secure
预计修改:admin/go.mod、admin/go.sum、admin/repository/db.go、admin/repository/user.go、admin/service/auth.go、admin/handler/web/auth.go、admin/handler/web/web.go、admin/main.go、admin/templates/auth/* 及对应测试。
admin/go.mod
admin/go.sum
admin/repository/user.go
admin/service/auth.go
admin/handler/web/auth.go
admin/handler/web/web.go
admin/main.go
admin/templates/auth/*
从 admin/ 执行:
admin/
$env:GOTOOLCHAIN="go1.23.0" go vet ./... go build ./... go test ./... -count=1 Remove-Item Env:GOTOOLCHAIN
还要运行首次初始化并发测试、旧库迁移测试和页面认证测试;不得调用真实 Client 或执行采购。
涉及数据库迁移和网页登录。迁移只追加新表,回退代码时保留表不删;测试必须覆盖 v1–v5 的现实库状态。Web 中间件误挂 API 会中断 Client,必须在本工单和回归工单双重验证。
状态:进行中。开始实施 v6、首次管理员初始化、网页登录/退出、12 小时 Session 和仅保护 Web 路由的认证中间件。严格不包含 #51 的采购员管理页面;当前用户的 Client 侧未提交文件保持不动。
状态:待验收。
实现已完成并按工单边界提交:
0a7db40
771e2ee
docs/task/50-admin-首次管理员初始化与网页登录.md
关键结果:
验证(Go 1.23.0):
gofmt -l .
go vet ./...
go build ./...
go test ./... -count=1
未调用真实 Client,也未执行采集或采购。工单保持开启,等待用户验收。
用户已于 2026-08-09 明确通过全部 Admin 待验收工单。本工单验收通过,现关闭,并同步父级 #15、#14 的任务清单。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
Admin 业务网页当前无需登录即可访问。需要实现首次管理员初始化和网页登录,同时保证 Client API 路由完全不经过 Web 登录中间件。
做什么 / 不做什么
users/web_sessionsRepository;首次管理员初始化;登录、退出、Session;Web 认证中间件;初始化和登录页面;相关测试。怎么做
admin/repository/db.go末尾追加 v6,不能修改 v1–v5;同步 schema 自检和迁移测试。golang.org/x/crypto/bcrypt保存密码哈希,不自行设计密码算法。repository/user.go、service/auth.go、handler/web/auth.go和templates/auth/。/setup只在users为空时可用;创建过程使用写事务重新检查,两个并发请求最多一个成功。/api/v1/client/*分组注册;Web 中间件不得挂到整个 Engine。HttpOnly、SameSite=Lax、Path=/;HTTPS 时启用Secure。预计修改:
admin/go.mod、admin/go.sum、admin/repository/db.go、admin/repository/user.go、admin/service/auth.go、admin/handler/web/auth.go、admin/handler/web/web.go、admin/main.go、admin/templates/auth/*及对应测试。验收标准
/api/v1/client/*不经过 Web 登录中间件。怎么验证
从
admin/执行:还要运行首次初始化并发测试、旧库迁移测试和页面认证测试;不得调用真实 Client 或执行采购。
风险和回退
涉及数据库迁移和网页登录。迁移只追加新表,回退代码时保留表不删;测试必须覆盖 v1–v5 的现实库状态。Web 中间件误挂 API 会中断 Client,必须在本工单和回归工单双重验证。
状态:进行中。开始实施 v6、首次管理员初始化、网页登录/退出、12 小时 Session 和仅保护 Web 路由的认证中间件。严格不包含 #51 的采购员管理页面;当前用户的 Client 侧未提交文件保持不动。
状态:待验收。
实现已完成并按工单边界提交:
0a7db40feat: 实现 Admin 首次初始化与网页登录 (#50)771e2eedocs: 归档任务 #50docs/task/50-admin-首次管理员初始化与网页登录.md关键结果:
users/web_sessions,未改写 v1–v5;验证(Go 1.23.0):
gofmt -l .:无输出go vet ./...:通过go build ./...:通过go test ./... -count=1:通过未调用真实 Client,也未执行采集或采购。工单保持开启,等待用户验收。
用户已于 2026-08-09 明确通过全部 Admin 待验收工单。本工单验收通过,现关闭,并同步父级 #15、#14 的任务清单。