[Client] Implement OAuth 2.0 Authorization Code flow with PKCE (RFC 6749 + RFC 7636)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- php
- Área
- authentication
Línea de trabajo
Comienza revisando las dependencias #315, #316, #317 y #318; después, inspecciona Mcp\Client\Auth\Grant\AuthorizationCodeGrant y TokenStorageInterface. Sigue los endpoints de autorización y de tokens antes de definir la integración del user-agent y del redirect-handler. Se considera completado cuando pasan las pruebas unitarias de PKCE y validación de state, y pasa el escenario de conformidad auth/basic-cimd.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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 viaTokenStorageInterface.
- Generate PKCE
- Verify
stateround-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-cimdpasses.
cc @soyuka
- Lenguaje dominante
- PHP
- Estrellas
- 1.6k
- Forks
- 173
- Merge medio
- 2 d 49 min
- PR fusionados (30 d)
- 23
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/php-sdk
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan AbiertoServer
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
modelcontextprotocol/php-sdk#468 · 2 comentarios ·
-
needs confirmation needs maintainer action Server
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
modelcontextprotocol/php-sdk#398 · 1 reacción ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
modelcontextprotocol/php-sdk#510 · 1 comentario ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
modelcontextprotocol/php-sdk#504 ·
Todos los issues de modelcontextprotocol/php-sdk
Issues similares
-
status/awaiting_triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
WordPress/plugin-check#1486 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
az-digital/az_quickstart#6019 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
grokability/snipe-it#19688 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100