Aller au contenu

Se connecter avec Nexus

28 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.

GET /.well-known/openid-configuration sans authentification

Découverte OpenID Connect du fournisseur « Se connecter avec Nexus » : points d’entrée, portées, algorithmes (RS256), PKCE S256.

NoteCORS ouvert, sans cookie. Les mêmes données sous /connexion/openid-configuration.
OPTIONS /.well-known/openid-configuration sans authentification

Pré-vol CORS de la découverte OpenID Connect.

GET /connexion/openid-configuration sans authentification

La découverte OpenID Connect, joignable depuis l’apex du site.

OPTIONS /connexion/openid-configuration sans authentification

Pré-vol CORS de la découverte (apex).

GET /connexion/jwks sans authentification

Les clés publiques (JWKS) qui vérifient les jetons d’identité signés RS256.

Réponse{ keys: JWK[] }
OPTIONS /connexion/jwks sans authentification

Pré-vol CORS du JWKS.

GET /connexion/application sans authentification

Ce que la page de connexion montre avant toute session : nom, logo et site de l’application, si sa demande est recevable.

Requêteclient_id, redirect_uri, response_type=code, scope, code_challenge, code_challenge_method=S256
RéponseConnexionApplicationPubliqueDto
POST /connexion/token sans authentification

Échange un code d’autorisation (avec code_verifier, PKCE obligatoire) ou un refresh_token (à rotation) contre access_token (1 h), refresh_token (30 j) et id_token signé.

Corpsgrant_type (authorization_code, refresh_token), code, code_verifier, redirect_uri, refresh_token, client_id, client_secret (client_secret_basic ou _post ; rien pour une application publique) — formulaire ou JSON
Réponse{ access_token, token_type, expires_in, refresh_token, id_token, scope }
NoteUn code ou un rafraîchissement rejoué révoque tous les jetons de la connexion. Inclus dans la formule Pro de l’espace du développeur, sans crédits (plafond technique : 100 000 personnes par mois et par application ; `inclus` dans ConnexionAppDto). Autres formules : 100 personnes distinctes connectées par mois et par application gratuites, puis 1 crédit Nexus par tranche entamée de 100 (débité à la volée). Crédits épuisés : 7 jours de grâce, alertes ; ensuite seules les nouvelles personnes payantes attendent la recharge.
OPTIONS /connexion/token sans authentification

Pré-vol CORS du point de jeton (pages seules, applications publiques).

GET /connexion/userinfo sans authentification

L’identité de la personne connectée, selon les portées consenties : sub (propre à ce site), name, picture, email, email_verified.

NoteAuthorization: Bearer <access_token>.
POST /connexion/userinfo sans authentification

La même identité, en POST (OIDC Core § 5.3.1).

OPTIONS /connexion/userinfo sans authentification

Pré-vol CORS de userinfo.

POST /connexion/revoke sans authentification

Révocation d’un jeton par le site (RFC 7009). Répond 200 même pour un jeton inconnu.

Corpstoken, client_id, client_secret
OPTIONS /connexion/revoke sans authentification

Pré-vol CORS de la révocation.

GET /connexion/photo/:sujet sans authentification

La photo de la personne, l’adresse que porte la revendication picture (portée profile consentie).

GET /connexion/autoriser session de l’application seulement

Décrit une demande de connexion à la page de consentement de Nexus : le site, ce qu’il recevra, la personne, et si elle l’a déjà accordé.

Requêteclient_id, redirect_uri, response_type=code, scope, code_challenge, code_challenge_method=S256, state, nonce, prompt
RéponseConnexionDemandeDto
Note409 quand le site est en pause faute de crédits et que cette personne coûterait un crédit impayé ; 403 si l’adresse du compte n’est pas confirmée.
POST /connexion/consentement session de l’application seulement

La décision de la personne : accorder (code d’autorisation de 5 min) ou refuser. Même origine exigée.

Corpsles paramètres de la demande, decision (allow, deny)
RéponseConnexionDecisionDto { redirectTo }
Note403 tant que la double authentification attendue n’est pas passée (POST /connexion/second-facteur), ou quand le site l’exige d’un compte qui ne l’a pas.
POST /connexion/second-facteur session de l’application seulement

Redemande le second facteur sur la page de consentement quand la session ne l’a pas passé (code de l’application d’authentification ou code de secours, consommé). Même origine, cinq essais par cinq minutes.

Corpscode
GET /connexion/apps

Les applications clientes « Se connecter avec Nexus » de l’espace, avec les utilisateurs actifs du mois, les crédits dus et débités, l’état (A_JOUR, GRACE, SUSPENDUE).

RéponseConnexionAppDto[]
NoteInclus dans la formule Pro de l’espace du développeur, sans crédits (plafond technique : 100 000 personnes par mois et par application ; `inclus` dans ConnexionAppDto). Autres formules : 100 personnes distinctes connectées par mois et par application gratuites, puis 1 crédit Nexus par tranche entamée de 100 (débité à la volée). Crédits épuisés : 7 jours de grâce, alertes ; ensuite seules les nouvelles personnes payantes attendent la recharge.
POST /connexion/apps

Enregistre une application cliente (site, application native) : client_id, secret haché, adresses de retour EXACTES. Avec projectId, NEXUS_CLIENT_ID, NEXUS_ISSUER et NEXUS_CLIENT_SECRET vont au coffre du projet (ENV_VAR), prêts pour le .env.

Corpsnom, redirectUris (https, http://localhost, ou schéma privé d’une application native ; 10 au plus), public (vrai : sans secret, PKCE seul), logoUrl, siteUrl (https), projectId, exigerDeuxFacteurs, porteesAutorisees (openid toujours, profile, email), couleurAccent (#rrggbb), cguUrl, confidentialiteUrl (https), apparence { variante sombre|clair|contour, taille petit|moyen|grand, rayon 0–28, pleineLargeur, texte se-connecter|se-connecter-avec|continuer-avec|libre, texteLibre, langue fr|en, iconeSeule }
RéponseConnexionAppCreeeDto (clientSecret en clair UNE fois, seulement hors coffre)
NoteUn agent doit nommer le projet d’une application à secret : il ne voit jamais le secret. 50 applications par espace, 30 créations par heure.
GET /connexion/apps/:id

Une application cliente de l’espace et son compte du mois.

RéponseConnexionAppDto
PATCH /connexion/apps/:id

Modifie le nom, le logo, le site ou les adresses de retour (son auteur ou un administrateur).

Corpsnom, redirectUris, logoUrl, siteUrl, exigerDeuxFacteurs, porteesAutorisees (openid toujours, profile, email), couleurAccent (#rrggbb), cguUrl, confidentialiteUrl (https), apparence { variante sombre|clair|contour, taille petit|moyen|grand, rayon 0–28, pleineLargeur, texte se-connecter|se-connecter-avec|continuer-avec|libre, texteLibre, langue fr|en, iconeSeule }
RéponseConnexionAppDto
DELETE /connexion/apps/:id

Retire l’application : plus aucune connexion, tous les jetons tombent (son auteur ou un administrateur). Journalisé.

POST /connexion/apps/:id/revoquer

Révoque TOUS les accès en cours de l’application (incident, fuite) : chaque personne se reconnecte. Les accords restent.

Réponse{ jetons }
POST /connexion/apps/:id/secret

Régénère le secret ; l’ancien cesse à l’instant. Rangé au coffre du projet quand l’application en a un.

RéponseConnexionAppCreeeDto
GET /connexion/apps/:id/kit

Le kit à coller, client_id posé, aucun secret : bouton et script sans dépendance (html), Node/Express, ou PHP.

Requêtepile (html, express, php), redirectUri (une des adresses enregistrées)
RéponseConnexionKitDto { fichiers, consignes }
GET /me/connexions-nexus session de l’application seulement

Les sites et applications auxquels j’ai relié mon compte Nexus, avec ce qu’ils reçoivent.

RéponseConnexionRelieeDto[]
DELETE /me/connexions-nexus/:appId session de l’application seulement

Retire l’accès d’un site : ses jetons tombent, il ne lit plus mon identité.