认证 Docker Postgres JWT 示例
此示例演示了一个 Go Fiber 应用的基础设置,它使用 Docker、PostgreSQL 和 JWT 进行认证。
描述
本项目提供了一个起点,用于构建使用 JWT 进行用户认证的 Web 应用。它利用 Docker 进行容器化,并使用 PostgreSQL 作为数据库。
要求
- Docker
- Docker Compose
- Go 1.18 或更高版本
设置
-
克隆仓库
git clone https://github.com/gofiber/recipes.git
cd recipes/auth-docker-postgres-jwt -
在
.env
文件中设置环境变量DB_PORT=5432
DB_USER=example_user
DB_PASSWORD=example_password
DB_NAME=example_db
SECRET=example_secret -
构建并启动 Docker 容器
docker-compose build
docker-compose up
API 和数据库现在应该正在运行。
数据库管理
您可以使用以下命令通过 psql
管理数据库
docker-compose exec db psql -U <DB_USER>
将 <DB_USER>
替换为您 .env
文件中的值。
API 端点
API 中提供以下端点
- POST /api/user: 注册新用户。
- POST /api/auth/login: 认证用户并返回 JWT。
- GET /api/user/:id: 获取用户 (需要有效的 JWT)。
- PATCH /api/user/:id: 更新用户 (需要有效的 JWT)。
- DELETE /api/user/:id: 删除用户 (需要有效的 JWT)。
使用示例
-
注册新用户
curl -X POST http://localhost:3000/api/user -d '{"username":"testuser", "password":"testpassword", "email": "test@email.com"}' -H "Content-Type: application/json"
-
登录以获取 JWT
curl -X POST http://localhost:3000/api/auth/login -d '{"username":"testuser", "password":"testpassword"}' -H "Content-Type: application/json"
-
访问受保护的路由
curl -H "Authorization: Bearer <JWT>" http://localhost:3000/api/user/1
将 <JWT>
替换为从登录端点接收到的令牌。
结论
此示例提供了 Go Fiber 应用使用 Docker、PostgreSQL 和 JWT 认证的基本设置。它可以进一步扩展和定制,以满足更复杂应用的需求。