SuperAPI AI 工具集

golang-gin-auth

安全与审计

查看项目

更新于 10-15 20:30

技能介绍

用途:为 Go Gin API 添加基于 JWT 的认证与授权,覆盖安全 API 所需的核心模式,包括 JWT 中间件、登录处理器、令牌生命周期与 RBAC。

主要能力:定义嵌入 jwt.RegisteredClaims 的自定义 Claims(含 jti,用于黑名单);生成与校验访问令牌和刷新令牌;JWT 中间件从 Authorization 头提取 Bearer 令牌、校验后通过 c.Set 注入 claims;注册时用 bcrypt 哈希密码(生产建议 cost≥12);登录校验凭据并返回双令牌;基于角色的路由保护(RequireRole);按 IP 的令牌桶限流;在处理器中通过 c.GetString 或 c.Get 获取当前用户。

使用方式:先安装依赖:go get github.com/golang-jwt/jwt/v5、go get golang.org/x/crypto、go get github.com/google/uuid、go get golang.org/x/time/rate。生产环境用 gin.New() 并显式挂载中间件,将 Auth 应用于受保护路由组,管理路由组叠加 RequireRole("admin")。密钥与 TTL 从环境变量加载,切勿硬编码。

适用场景:需要为 Gin API 增加登录注册、路由保护、令牌刷新与吊销、角色或权限访问控制、多租户授权的项目。

限制:资料未提供具体收费、价格或平台信息。限流示例为进程内 map,仅适用于单实例部署,多实例需改用 Redis 方案(如 go-redis/redis_rate)。错误信息不应向客户端暴露原始 err.Error()。更深入的令牌黑名单、RS256 与 HS256 对比、CSRF 防护、RBAC 层级等细节见其 references 文件。