{"adoption": {"forks": 1136, "observed_at": "2026-08-28T04:09:47.475341+00:00", "stars": 6662}, "canonical_url": "https://ross.abutalabs.com/products/oauth2-server", "card": {"archived": false, "artifact_type": "library", "description": "A spec compliant, secure by default PHP OAuth 2.0 Server", "domain": ["security", "apis", "web-development", "backend"], "enriched": true, "function": ["auth", "api-framework", "middleware"], "health_score": 93, "homepage": "https://oauth2.thephpleague.com", "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["thephpleague/oauth2-server"], "name": "thephpleague/oauth2-server", "platform": ["php", "self-hosted"], "pushed_at": "2026-06-25T15:28:43+00:00", "repo": "thephpleague/oauth2-server", "stars": 6662, "tags": ["oauth2", "oauth2-server", "jwt", "authorization-server", "psr-7", "bearer-tokens", "pkce", "device-flow", "web-server"], "topics": ["oauth2", "oauth2-server", "oauth", "php"], "urls": [], "use_cases": ["issue OAuth 2.0 access tokens for my API", "implement an authorization code grant server in PHP", "add JWT-based bearer token authentication to a REST API", "support device authorization flow for smart TV apps", "secure a Laravel API with OAuth 2.0", "implement PKCE for public clients", "issue and refresh access tokens for third-party clients"], "what_it_is": "A standards-compliant OAuth 2.0 authorization server library for PHP, supporting all major grants (authorization code, client credentials, password, refresh, implicit, device) and RFCs 6749, 6750, 7519, 7636, and 8628. It is PSR-7 based and integrates with frameworks like Laravel, Symfony, Slim, and Drupal.", "when_to_avoid": ["you only need an OAuth 2.0 client to consume third-party APIs", "you want a full identity provider with user management, SSO, or OpenID Connect out of the box", "you are not working in PHP"], "when_to_choose": ["you need a spec-compliant OAuth 2.0 authorization server in PHP", "you want to protect your own API with access tokens and refresh tokens", "you need framework-agnostic OAuth via PSR-7", "you need device flow or PKCE support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/oauth2-server", "repo": "thephpleague/oauth2-server", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.475341+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:43:02.586750+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6630ca8133a8c32e565697359a8f92644a795acc4402de41a9e5c5d6f1b83496", "fetched_at": "2026-08-28T04:09:47.475341+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thephpleague/oauth2-server"}, {"content_hash": "88b352b455ad15ac90f1662b6307a0d36cb914b00e59a4ed5c70f9a065236fc8", "fetched_at": "2026-08-29T08:39:17.072332+00:00", "kind": "homepage", "missing": false, "url": "https://oauth2.thephpleague.com"}, {"content_hash": "a4d4a4d8d61578737e845d572bce594e887ffa0f070b3dc49b93f718f9032bd3", "fetched_at": "2026-08-29T08:39:17.074897+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/installation"}, {"content_hash": "125301b2fd7a98b933326abbb545583eb51ba226cc64e3a569e0ef761b373ee1", "fetched_at": "2026-08-29T08:39:17.078406+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/V4-docs"}, {"content_hash": "a4b4510f11eafbb4a5372a1a6e11dfeeed284942d83421058518ce60cd71b902", "fetched_at": "2026-08-29T08:39:17.076909+00:00", "kind": "site_page", "missing": false, "url": "https://oauth2.thephpleague.com/framework-integrations"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 100, "rhythm": 78}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5203, "days_push": 69, "days_rel": 69, "gap_med": 38, "n_releases_24m": 8}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}