modelcontextprotocol / modelcontextprotocol/php-sdk

[Client] Add OAuth 2.0 credential storage interface (TokenStorageInterface)

Offen
#315 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

Foundation for every OAuth flow on the client side. Without a storage abstraction we cannot persist access tokens, refresh tokens, registered client credentials, or PKCE verifiers across requests/sessions.

Scope

  • Define Mcp\Client\Auth\TokenStorageInterface with operations: getToken(string $resourceUrl): ?TokenSet, storeToken(string $resourceUrl, TokenSet $token): void, clearToken(string $resourceUrl): void, plus equivalents for registered client metadata.
  • Value object TokenSet (access_token, refresh_token, expires_at, scope, token_type).
  • Default implementations:
    • InMemoryTokenStorage (ephemeral, per-process).
    • Psr16TokenStorage adapter for PSR-16 CacheInterface.
  • Wire into Client\Builder::setTokenStorage(...) (optional; defaults to in-memory).

Conformance scenarios unblocked

Prerequisite for all auth/* baseline scenarios.

Dependencies

None — must land first.

Acceptance

  • Interface + value object + 2 storage adapters in src/Client/Auth/.
  • Unit tests for both adapters.
  • Builder method documented.

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 Client\Builder und den baseline-Szenarien in auth/* und untersuche anschließend den Bereich src/Client/Auth/. Vergleiche das Interface, TokenSet, beide Adapter, die Builder-Verdrahtung und die Unit-Tests mit den aufgeführten Operationen und Akzeptanzkriterien; abgeschlossen ist die Aufgabe, wenn die optionale Builder-Konfiguration und ihre Dokumentation abgedeckt sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
api, authentication
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

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