10 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.
GET
/.well-known/oauth-protected-resource
sans authentification
Métadonnées de la ressource protégée (RFC 9728) : où est le serveur d’autorisation.
GET
/.well-known/oauth-protected-resource/api/v1/mcp
sans authentification
Les mêmes métadonnées, à l’adresse dérivée du chemin de la ressource.
GET
/.well-known/oauth-authorization-server
sans authentification
Métadonnées du serveur d’autorisation (RFC 8414) : points d’entrée, PKCE, portées.
GET
/oauth/protected-resource
sans authentification
Métadonnées de la ressource, joignables depuis l’apex du site.
POST
/oauth/register
sans authentification
Enregistrement dynamique d’un client (RFC 7591). 20 par heure et par adresse.
Corpsclient_name, redirect_uris (https, ou http://localhost), client_uri, logo_uri, token_endpoint_auth_method (none, client_secret_post, client_secret_basic)
Réponse{ client_id, client_secret?, redirect_uris, … }
GET
/oauth/authorize
session de l’application seulement
Décrit une demande d’autorisation à l’écran de consentement (le navigateur, avec sa session).
Requêteclient_id, redirect_uri, response_type=code, code_challenge, code_challenge_method=S256, state, scope, resource
RéponseOAuthAuthorizeDetailsDto
POST
/oauth/consent
session de l’application seulement
La décision de la personne : accorder (code d’autorisation) ou refuser.
Corpsles paramètres de la demande, decision (allow, deny), readOnly
RéponseOAuthConsentResultDto { redirectTo }
POST
/oauth/token
sans authentification
Échange un code (avec code_verifier) ou un refresh_token contre un jeton d’accès de 12 heures.
Corpsgrant_type (authorization_code, refresh_token), code, code_verifier, redirect_uri, refresh_token, client_id, client_secret — formulaire ou JSON
Réponse{ access_token, token_type, expires_in, refresh_token, scope }
POST
/oauth/revoke
sans authentification
Révocation d’un jeton par le client (RFC 7009). Répond toujours 200.
Corpstoken, token_type_hint, client_id, client_secret