GoFrame JWT认证示例
Github Source: https://github.com/gogf/examples/tree/main/httpserver/jwt
本示例展示了如何在GoFrameHTTP服务器中使用 github.com/golang-jwt/jwt 包实现JWT(JSON Web Token)认证。
功能特性
- 用户登录接口,生成
JWT令牌 - 使用
JWT中间件保护路由 - 令牌验证和解析
 - 受保护资源访问示例
 - 标准的
GoFrame项目结构 
项目结构
jwt/
├── api/
│   └── v1/
│       └── auth.go         # API接口定义
├── internal/
│   ├── controller/
│   │   └── auth.go        # 业务逻辑实现
│   └── middleware/
│       └── jwt.go         # JWT中间件
└── main.go                # 入口文件
API接口
- 
登录接口:
POST /login{
"username": "admin",
"password": "password"
} - 
受保护资源:
GET /api/protected- 需要在
Authorization头部携带Bearer令牌 - 示例: 
Authorization: Bearer your-token-here 
 - 需要在
 
运行示例
- 
启动服务器:
go run main.go - 
服务器将在
8000端口启动 
测试API
- 
登录获取令牌:
curl -X POST http://localhost:8000/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}' - 
访问受保护的接口:
curl http://localhost:8000/api/protected \
-H "Authorization: Bearer your-token-here" 
安全注意事项
- 在生产环境中,请替换硬编码的密钥为安全的值
 - 将用户凭证存储在数据库中
 - 实现适当的密码哈希
 - 考虑实现刷新令牌机制
 - 为登录尝试添加速率限制
 
参考资料
有关JWT实现的更多详细信息,请参考第三方组件文档: