Intégrer le relais dans un site
Protocole gpxauth, version 1. Le relais transporte une réponse ; il ne remplace pas l’authentification de votre application ni les autorisations du fournisseur.
- Utilisez votre propre parcours OAuth pris en charge par OpenAI et votre propre enregistrement d’application. L’extension ne fournit aucun identifiant d’application tiers ni autorisation d’utiliser un abonnement.
- Importez les fonctions de relay.mjs dans votre site ou votre serveur. Créez un état avec
createRelayState("https://votre-site.example/auth/return"). Le callback doit utiliser HTTPS et ne pas contenir de fragment. - Conservez côté serveur cet état exact, le compte utilisateur cible, une expiration courte, votre vérificateur PKCE et votre nonce OIDC. Utilisez un état distinct pour chaque tentative.
- Envoyez cet état comme paramètre OAuth
state, avecredirect_uri=http://127.0.0.1:1455/auth/callback. Ouvrez la page officielle du fournisseur. - L’extension affiche le domaine de destination. Après confirmation, elle ouvre votre callback avec
#gpx-auth=suivi de l’URL de retour locale encodée. - Sur la page de retour, capturez ce fragment, retirez-le immédiatement de l’adresse avec
history.replaceState, puis transmettez la réponse à votre serveur sous HTTPS.parseRelayFragment(fragment, expectedState)aide à vérifier le format ; il ne remplace pas la vérification côté serveur. - Votre serveur doit vérifier l’état exact et son usage unique, la session et le compte cible, l’expiration, le code, le client émis, PKCE, la signature et le nonce du jeton d’identité, l’émetteur, les audiences et les permissions. N’annoncez la réussite qu’après vérification et enregistrement effectifs.
Sans accès aux pages web
L’extension n’injecte pas de script dans les sites. Une fois son identifiant Chrome Web Store connu, votre site peut détecter la ressource publique chrome-extension://ID/installed.json si sa politique CSP l’autorise. Une absence de détection doit proposer le lien du Store et une action Réessayer.
Les autorisations temporaires doivent être annulables et ne doivent pas permettre de remplacer silencieusement un compte existant. Protégez les jetons côté serveur ; ne les envoyez jamais à l’extension.
Simulation du relaisPrésentation