[Client] Inject Bearer token into HttpTransport requests + handle 401 re-auth
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- php
- Ambito
- api, authentication, backend
Direzione di ricerca
Inizia da src/Client/Transport/HttpTransport.php ed esamina la dipendenza TokenStorageInterface di #315. Segui send() e il punto di ingresso del coordinatore dell’autenticazione, quindi aggiungi la copertura dei test unitari per l’iniezione dell’header Bearer e un singolo tentativo di retry della riautenticazione dopo un 401. Il lavoro è completato quando le richieste utilizzano il token corrente dell’endpoint, le risposte 401 attivano un solo retry e il punto di estensione AuthCoordinator è documentato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Once an access token is acquired (via any OAuth grant), every outbound JSON-RPC request on HttpTransport must carry Authorization: Bearer <token>. On a 401 Unauthorized mid-session, the transport must trigger a re-auth attempt and retry the failed request exactly once.
Scope
src/Client/Transport/HttpTransport.php:- Read current token from
TokenStorageInterfacekeyed by endpoint URL. - Add
Authorization: Bearer <token>header onsend()when a token is present. - On
401, parseWWW-Authenticateheader, invoke auth coordinator, retry once.
- Read current token from
- Introduce
Mcp\Client\Auth\AuthCoordinatorto orchestrate discovery → registration → token acquisition. (Implementation details land in dependent issues.)
Conformance scenarios unblocked
All auth/* scenarios depend on this wiring.
Dependencies
Blocked by: #315 (TokenStorageInterface).
Acceptance
- Unit tests for header injection + 401 retry behavior.
- Documented extension point for
AuthCoordinator.
cc @soyuka
- Lingua principale
- PHP
- Stelle
- 1.6k
- Fork
- 173
- Merge medio
- 2g 49m
- PR unite (30g)
- 23
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/php-sdk
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan ApertaServer
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
modelcontextprotocol/php-sdk#468 · 2 commenti ·
-
needs confirmation needs maintainer action Server
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/php-sdk#398 · 1 reazione ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
modelcontextprotocol/php-sdk#510 · 1 commento ·
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
modelcontextprotocol/php-sdk#504 ·
Tutte le issue di modelcontextprotocol/php-sdk
Issue simili
-
priority: p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
googleapis/librarian#7636 ·
-
0. Needs triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nextcloud/fulltextsearch#1011 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
coollabsio/coolify#11927 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100