modelcontextprotocol / modelcontextprotocol/php-sdk

[Client] Implement OAuth 2.0 Authorization Code flow with PKCE (RFC 6749 + RFC 7636)

Offen
#319 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

auth Client enhancement improves spec compliance
Vorherrschende Sprache
PHP
Sterne
1.6k
Forks
173
Ø Merge
2 T. 49 Min.
Gemergte PRs (30 T.)
23

Beschreibung

Context

Primary user-facing flow. Required for any interactive MCP client to obtain tokens after PRM/AS discovery.

Scope

  • Mcp\Client\Auth\Grant\AuthorizationCodeGrant:
    • Generate PKCE code_verifier + code_challenge (S256).
    • Build authorize URL with client_id, redirect_uri, response_type=code, code_challenge, code_challenge_method, scope, state, resource (audience-binding RFC 8707).
    • Pluggable user-agent dispatcher: callback hook so library users can open a browser / present URL in CLI.
    • Local loopback redirect listener (default) or custom redirect handler.
    • Exchange code → tokens at token_endpoint; persist via TokenStorageInterface.
  • Verify state round-trip; reject mismatched.

Conformance scenarios unblocked

auth/basic-cimd and prerequisite for all scope/refresh/cross-app scenarios.

Dependencies

Blocked by: #315, #316, #317, #318. Pairs with #319 (token endpoint auth methods).

Acceptance

  • Unit tests for PKCE generation + state validation.
  • Conformance: auth/basic-cimd passes.

cc @soyuka

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung der Abhängigkeiten #315, #316, #317 und #318 und untersuche anschließend Mcp\Client\Auth\Grant\AuthorizationCodeGrant und TokenStorageInterface. Verfolge die Autorisierungs- und Token-Endpunkte, bevor du die Integration von User-Agent und Redirect-Handler definierst. Als abgeschlossen gilt die Aufgabe, wenn die PKCE- und State-Validierungs-Unit-Tests bestehen und das auth/basic-cimd-Konformitätsszenario erfolgreich ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
authentication
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.