# SatoNano 云服务综合管理平台 ## 功能特性 - ✅ 用户注册、登录、退出 - ✅ JWT 令牌认证(Access + Refresh Token) - ✅ 密码修改 - ✅ 用户信息管理 - 🔜 邀请码注册 - 🔜 OAuth2 第三方登录 ## 技术栈 - **Web 框架**: FastAPI - **ORM**: SQLAlchemy 2.0 (异步) - **密码哈希**: Argon2 - **认证**: JWT (PyJWT) - **数据验证**: Pydantic v2 ## 快速开始 ### 环境要求 - Python 3.12+ - [uv](https://github.com/astral-sh/uv) (推荐) ### 安装 ```bash # 克隆项目 git clone cd SatoNano # 安装依赖 uv sync # 配置环境变量(可选) cp .env.example .env # 编辑 .env 文件设置 SECRET_KEY 等配置 ``` ### 启动服务 ```bash # 开发模式(自动重载) uv run python main.py # 或使用 uvicorn uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ### 访问 API - API 文档: http://localhost:8000/docs - ReDoc 文档: http://localhost:8000/redoc - 健康检查: http://localhost:8000/health ## API 接口 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/auth/register` | POST | 用户注册 | | `/api/v1/auth/login` | POST | 用户登录 | | `/api/v1/auth/logout` | POST | 用户退出 | | `/api/v1/auth/refresh` | POST | 刷新令牌 | | `/api/v1/auth/change-password` | POST | 修改密码 | | `/api/v1/users/me` | GET | 获取当前用户 | | `/api/v1/users/me` | PATCH | 更新用户信息 | 详细文档请查看 [docs/auth-api.md](docs/auth-api.md) ## 项目结构 ``` app/ ├── api/ # API 路由层 ├── core/ # 核心功能(配置、安全、异常) ├── models/ # 数据库模型 ├── repositories/ # 数据访问层 ├── schemas/ # 数据验证模式 ├── services/ # 业务逻辑层 ├── database.py # 数据库连接 └── main.py # 应用入口 ``` 详细架构说明请查看 [docs/architecture.md](docs/architecture.md) ## 开发 ```bash # 安装开发依赖 uv sync --dev # 代码格式化 uv run ruff format . # 代码检查 uv run ruff check . # 运行测试 uv run pytest ``` ## 配置说明 支持通过环境变量或 `.env` 文件配置: | 变量 | 默认值 | 说明 | |------|--------|------| | `SECRET_KEY` | - | JWT 签名密钥(生产必改) | | `DEBUG` | false | 调试模式 | | `DATABASE_URL` | sqlite+aiosqlite:///./satonano.db | 数据库连接 | | `ACCESS_TOKEN_EXPIRE_MINUTES` | 30 | 访问令牌有效期 | | `REFRESH_TOKEN_EXPIRE_DAYS` | 7 | 刷新令牌有效期 | ## License MIT