题目:基于 Go 的 Hertz 框架实现一个简单登录系统
一、项目背景
请使用 Go 语言 + Hertz 框架 开发一个最小可用的用户登录系统,实现基本的认证与会话管理功能。
二、功能要求
基础环境
- 使用 Hertz 搭建 HTTP 服务(端口不限)。
- 使用 Go Modules 管理依赖,项目能正常启动并接收请求。
用户数据
- 使用任意方式存储用户数据(内存、数据库或文件)。
- 用户至少包含
username、password字段。
登录功能
- 提供登录页面(GET /login)和登录提交接口(POST /login)。
- 登录成功跳转到首页(例如 /home)并显示当前用户名。
- 登录失败返回登录页并显示错误信息。
会话管理
- 登录成功后保存登录状态(可基于 session、cookie 或自定义方式)。
- 受保护页面需验证用户是否已登录。
- 提供退出登录(/logout)并清除会话信息。
异常处理
- 对空参数、非法方法、未登录访问受保护资源等情况进行合理处理。
三、非功能性要求
- 代码结构清晰,必要注释完整。
- 不泄露敏感信息,不在响应中返回密码。
四、加分项(任选其一即可)
- 密码加密存储
- 注册功能
- 登录失败次数限制与账户锁定
- 记住我功能
五、提交内容
- 完整项目源码(含 go.mod)
- README,说明项目结构、启动方式及已实现功能
