尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Rust OAuth2 Server with Social Logins with observability. Typesafe and Actor System.
翻译准备中
正在加载完整 README。
查看完整 README ↗This project is fully equipped for AI-assisted development with Skills, Slash Commands, MCP Server, and specialized Agent Instructions.
Setup: "Set up the rust-oauth2-server locally with SQLite, then register a test client and request an access token"
Test Flow: "Use the oauth2-test-flow skill to verify authorization code + PKCE flow"
Deploy: "Use the deploy-k8s skill to deploy to staging environment"
Debug: "Use the oauth2-debug-token skill to debug this JWT token: eyJ..."
Troubleshoot: "The server is returning 500 errors on token endpoint - help me debug this"
Skills (.skills/) - Reusable AI workflows for complex tasks:
oauth2-test-flow - Test complete OAuth2 flowsoauth2-register-client - Register new OAuth2 clientsoauth2-debug-token - Debug JWT token issuesrfc-compliance-check - Verify RFC compliancedb-migration - Create database migrationsdeploy-k8s - Deploy to Kubernetesadd-endpoint - Add new HTTP endpointsSlash Commands (.claude/commands/) - Quick access to common operations:
/test - Run tests with filters/ci - Run CI gate checks/deploy - Deploy to environment/rfc - Check RFC compliance/security - Run security scans/migrate - Create migration/docs - Generate documentation/benchmark - Run performance testsMCP Server (mcp-server/) - OAuth2 operations via Model Context Protocol:
Agent Instructions (.github/agents/) - Specialized domain expertise:
development.md - Coding guidelines and patternsoperations.md - Deployment and ops proceduresdatabase.md - Database managementsecurity.md - Security best practicesCLAUDE.md - Start here: Agent memory, behavioral guidelines, and project contextAGENTIC_QUICKSTART.md - Quick start for AI-assisted developmentdocs/AI_TOOLING_ENHANCEMENTS.md - AI tooling enhancement plan.github/copilot-instructions.md - Copilot-specific instructionscp .env.example .env
# set OAUTH2_JWT_SECRET, OAUTH2_SESSION_KEY, and OAUTH2_SEED_PASSWORD
cargo run
Then open:
http://localhost:8080http://localhost:8080/auth/loginhttp://localhost:8080/adminhttp://localhost:8080/swagger-uiThe default local path uses SQLite. If you want Postgres plus the supporting services, use docker compose up -d instead.
OAUTH2_* flags): RFC 8693 token exchange with actor delegation chains, JWT-bearer grant + identity chaining / ID-JAG, transaction tokens with the A2A profile, the Transaction Authorization Challenge (human-in-the-loop approval), Client ID Metadata Document onboarding, named-agent consent — see docs/agents/README.md/health, /ready, /metrics, OpenTelemetry exportk8s/Important reality checks:
/auth/login/azure prefers OAUTH2_AZURE_* config and falls back to Microsoft if unset; Okta/Auth0 currently return 503docs/getting-started/quickstart.mddocs/getting-started/configuration.mddocs/usage/oauth2-oidc.mddocs/agents/README.mddocs/usage/admin-api.mddocs/operations/deployment.md, docs/operations/observability.md, docs/operations/runbooks.mddocs/development/architecture.md, docs/development/extending.mddocs/development/testing.md, docs/development/contributing.mdDeep repo-local guides intentionally live outside the docs-site nav:
k8s/README.mdDOCKERHUB.mdmcp-server/README.mdbenchmarks/README.mdThe server is a Cargo workspace, not a single monolith:
crates/oauth2-core — domain typescrates/oauth2-ports — storage/integration traitscrates/oauth2-actix — handlers, middleware, actorscrates/oauth2-server — runtime assembly and route wiringcrates/oauth2-events / oauth2-ratelimit / oauth2-resilience — operational behaviormcp-server/ — separate Node.js MCP wrapperIf you are changing behavior, the main source-of-truth files are:
.env.exampleapplication.conf.examplecrates/oauth2-server/src/lib.rsmcp-server/src/index.jsBefore considering any change done, run the same local gates CI expects:
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --verbose --all-features --locked
If you changed docs, also run:
python3 -m mkdocs build --strict