modelcontextprotocol / modelcontextprotocol/php-sdk
[Client] Add OAuth 2.0 credential storage interface (TokenStorageInterface)
Dieses Issue hat noch niemand übernommen.
- 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\TokenStorageInterfacewith 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).Psr16TokenStorageadapter for PSR-16CacheInterface.
- 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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