No description
  • HTML 76.9%
  • Go 23.1%
Find a file
xiaoman1221 193a8e162f docs(readme): 添加项目完整文档
- 添加项目标题和功能特性介绍
- 详细描述认证、密码管理、用户管理等功能模块
- 列出技术栈包括Go、Gin、SQLite等组件信息
- 提供安装与运行步骤说明
- 添加页面路由表格和数据库结构说明
- 介绍安全特性和活动日志功能
- 包含API使用示例和注意事项
- 补充贡献指南和许可证信息
2026-03-20 18:55:34 +08:00
.idea feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
frontend feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
.env feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
data.db feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
go.mod feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
go.sum feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
main.go feat(frontend): 添加前端页面和配置文件 2026-03-20 18:53:08 +08:00
README.md docs(readme): 添加项目完整文档 2026-03-20 18:55:34 +08:00

授权系统 (AuthSystem)

基于 Go + Gin + SQLite 构建的现代化用户认证与授权管理系统,提供完整的用户管理、密码重置、安全设置和活动日志等功能。

功能特性

🔐 认证功能

  • 用户登录/登出:支持用户名密码认证,自动设置会话 Cookie
  • 密码加密:使用 bcrypt 算法进行密码哈希存储
  • 记住登录状态Cookie 有效期 1 小时

🔑 密码管理

  • 忘记密码:通过邮箱接收密码重置链接
  • 重置密码令牌验证1 小时有效期
  • 修改密码:在线修改登录密码,验证原密码

👤 用户管理

  • 个人资料:查看和编辑用户信息(用户名、邮箱)
  • 账户配置:支持用户自定义邮箱地址

🛡️ 安全功能

  • 登录通知:新设备登录时自动发送邮件通知
  • 安全设置:可配置的安全选项
  • 活动日志:记录所有用户操作(登录、登出、修改密码等)
  • IP 追踪:记录操作的 IP 地址和用户代理

📧 邮件服务

  • SMTP 集成:支持自定义 SMTP 服务器配置
  • 密码重置邮件:精美的 HTML 邮件模板
  • 登录通知邮件:实时发送登录提醒

🔌 API 接口

  • 授权验证 APIPOST /api/v1/checkAuth - 用于第三方服务的 Token 验证
  • 用户信息 API
    • POST /api/profile - 获取用户信息
    • POST /api/profile/update - 更新用户资料
    • POST /api/change-password - 修改密码
    • POST /api/security/toggle - 切换安全设置
    • POST /api/activity/list - 获取活动日志

🏗️ 技术栈

  • 后端框架: Go 1.26 + Gin v1.12.0
  • 数据库: SQLite (modernc.org/sqlite)
  • 密码加密: bcrypt (golang.org/x/crypto)
  • 环境配置: godotenv
  • 前端: HTML5 + CSS3 + JavaScript
  • 邮件服务: 原生 SMTP 协议实现

📦 安装与运行

前置要求

  • Go 1.26 或更高版本
  • Git

克隆项目

安装依赖

配置环境变量

复制 .env 文件并根据需要修改配置:

运行应用

应用将在 http://localhost:8080 启动

默认账户

  • 用户名: admin
  • 密码: password

⚠️ 首次登录后请立即修改默认密码!

📱 页面路由

路径 描述
/ 首页
/login 登录页面
/dashboard 用户仪表盘
/profile 个人资料
/change-password 修改密码
/security 安全设置
/activity 活动日志
/forgot-password 忘记密码
/reset-password 重置密码

🗄️ 数据库结构

users 表

activity_logs 表

🔒 安全特性

  1. 密码加密: 使用 bcrypt 算法,成本因子为 10
  2. CSRF 保护: Cookie 安全标志设置
  3. SQL 注入防护: 参数化查询
  4. 令牌过期: 密码重置令牌 1 小时后自动失效
  5. 活动审计: 所有关键操作均有日志记录
  6. 内存存储: 用户数据同时存储在内存和数据库中,提高性能

📊 活动日志类型

系统记录以下操作:

  • 🔐 登录 (LOGIN)
  • 🚪 退出 (LOGOUT)
  • 🔑 修改密码 (CHANGE_PASSWORD)
  • 🛡️ 安全设置 (SECURITY_SETTING)
  • 📝 其他操作

每条日志包含:

  • 操作用户名
  • 操作类型和描述
  • IP 地址
  • 用户代理
  • 执行状态(成功/失败)
  • 时间戳

🚀 API 使用示例

检查授权

获取用户资料

更新用户资料

修改密码

添加新功能

  1. main.go 中添加新的路由处理函数
  2. frontend/ 目录创建对应的 HTML 页面
  3. 如需数据库支持,在 initDatabase() 中更新表结构
  4. 使用 logActivity() 记录重要操作

📝 注意事项

  1. SMTP 配置: 如需邮件功能,请在 .env 中配置正确的 SMTP 服务器信息
  2. 数据库文件: data.db 会自动创建,无需手动初始化
  3. 默认用户: 系统启动时会自动创建 admin 用户(如果不存在)
  4. 并发安全: 使用 sync.RWMutex 保证用户数据并发访问安全
  5. 生产环境: 建议修改默认密码,配置 HTTPS启用更严格的安全策略

🤝 贡献

欢迎提交 Issue 和 Pull Request

📄 许可证

本项目采用 MIT 许可证。

👨‍💻 作者

如有问题,请联系作者或提交 Issue。


最后更新: 2026 年 3 月 20 日