aptlogica/sereni-jwt-provider
GitHub: aptlogica/sereni-jwt-provider
一个基于 Go 的企业级 JWT 身份验证服务,解决安全令牌生成、验证、轮换与多租户隔离问题。
Stars: 0 | Forks: 0
sereni-jwt-provider - 安全 JWT 身份验证服务
企业级 JWT 身份验证服务和开源身份提供者,用于安全的应用程序访问。是一个全面的 JWT 身份验证服务器和身份提供者,提供高级令牌管理、密钥轮换以及与现代认证工作流程的无缝集成。
## 概述 **sereni-jwt-provider** 是一个开源的身份验证服务,用于生成、验证和管理 JSON Web Tokens(JWT)。它为 API、微服务和后端应用程序提供安全、基于令牌的认证。设计注重可扩展性和易于集成,帮助保护端点、验证请求,并确保只有授权访问您的系统。 ## 关键特性 - **JWT 令牌管理**:JWT 令牌的安全签发、验证和撤销 - **自动密钥轮换**:可配置的密钥轮换,支持无缝的令牌过渡 - **多租户支持**:为不同应用程序提供隔离的认证上下文 - **高级安全**:RSA/ECDSA 签名、令牌黑名单和安全头 - **全面监控**:详细的认证指标和审计日志 - **基于令牌的身份验证**:JWT 认证 API 与 JWT 提供者功能,支持认证微服务部署 - **云原生架构**:Kubernetes 兼容,支持水平扩展 ## 架构 - Go 1.26.2,惯用设计 - 模块化、可测试的代码库 ## 安装 ``` go get github.com/aptlogica/sereni-jwt-provider ``` ## 配置 请参阅 `.env.example` 以了解环境变量和配置选项。 ## 快速开始 ``` package main import ( "context" "log" "github.com/aptlogica/sereni-jwt-provider/pkg/client" "github.com/aptlogica/sereni-jwt-provider/pkg/config" "github.com/aptlogica/sereni-jwt-provider/pkg/types" ) func main() { // Initialize configuration cfg := config.New() cfg.JWTSecret = "your-secret-key" cfg.TokenExpiry = "24h" cfg.RefreshExpiry = "7d" // Create JWT provider provider, err := client.New(cfg) if err != nil { log.Fatal("Failed to create provider:", err) } // Generate token for user claims := &types.Claims{ UserID: "user123", Email: "user@example.com", Roles: []string{"user", "admin"}, } ctx := context.Background() tokens, err := provider.GenerateTokens(ctx, claims) if err != nil { log.Fatal("Failed to generate tokens:", err) } log.Printf("Access Token: %s", tokens.AccessToken) log.Printf("Refresh Token: %s", tokens.RefreshToken) } ``` ## 开发 ### 本地设置 ``` # 克隆仓库 git clone https://github.com/aptlogica/sereni-jwt-provider.git cd sereni-jwt-provider # 安装依赖 go mod download # 设置环境 cp .env.example .env # 在 .env 中配置您的 JWT 设置 # 生成用于 JWT 签名的 RSA 密钥 openssl genrsa -out private_key.pem 2048 openssl rsa -in private_key.pem -pubout -out public_key.pem # 启动开发服务器 go run ./cmd/server ``` ### 环境配置 ``` JWT_SECRET=your-jwt-secret-key JWT_EXPIRY=24h REFRESH_EXPIRY=7d PRIVATE_KEY_PATH=./private_key.pem PUBLIC_KEY_PATH=./public_key.pem PORT=8080 LOG_LEVEL=debug ``` ### 密钥管理 ``` # 生成新的 RSA 密钥对 make generate-keys # 轮换密钥(零停机) make rotate-keys ``` ## 测试 - 运行 `go test ./...` 执行单元测试 ## 安全 请参阅 [SECURITY.md](SECURITY.md) 报告漏洞。 ## 许可证 MIT 许可证。版权所有 (c) 2026 Aptlogica Technologies.标签:API保护, EVTX分析, Gin框架, Go语言, JWT生成, JWT管理, JWT认证, JWT验证, OAuth兼容, Open-source, Streamlit, Swagger文档, Token管理, 令牌刷新, 令牌生命周期, 企业级认证, 单点登录, 后端服务, 子域名突变, 安全API, 安全认证, 密钥轮换, 日志审计, 程序破解, 脚本检测, 认证提供, 认证服务, 访问控制, 请求拦截, 质量门禁, 身份提供