2.5 KiB
2.5 KiB
SatoNano
云服务综合管理平台
功能特性
- ✅ 用户注册、登录、退出
- ✅ JWT 令牌认证(Access + Refresh Token)
- ✅ 密码修改
- ✅ 用户信息管理
- 🔜 邀请码注册
- 🔜 OAuth2 第三方登录
技术栈
- Web 框架: FastAPI
- ORM: SQLAlchemy 2.0 (异步)
- 密码哈希: Argon2
- 认证: JWT (PyJWT)
- 数据验证: Pydantic v2
快速开始
环境要求
- Python 3.12+
- uv (推荐)
安装
# 克隆项目
git clone <repo-url>
cd SatoNano
# 安装依赖
uv sync
# 配置环境变量(可选)
cp .env.example .env
# 编辑 .env 文件设置 SECRET_KEY 等配置
启动服务
# 开发模式(自动重载)
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
项目结构
app/
├── api/ # API 路由层
├── core/ # 核心功能(配置、安全、异常)
├── models/ # 数据库模型
├── repositories/ # 数据访问层
├── schemas/ # 数据验证模式
├── services/ # 业务逻辑层
├── database.py # 数据库连接
└── main.py # 应用入口
详细架构说明请查看 docs/architecture.md
开发
# 安装开发依赖
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