Documentation
Le prompt fait tout ce qui suit à ta place. Cette page sert à comprendre ce qu'il écrit, ou à intégrer PromptAuth à la main.
Le principe
PromptAuth est un fournisseur OpenID Connect. Ton app envoie l'utilisateur vers PromptAuth, qui le fait passer par Google, puis le renvoie sur ton adresse de retour avec un code. Ton app échange ce code contre un jeton signé qui contient l'e-mail, le nom et la photo de l'utilisateur.
Points d'accès
Découverte https://promptauth.dev/.well-known/openid-configuration Autorisation https://promptauth.dev/api/v1/authorize Jetons https://promptauth.dev/api/v1/token Clés (JWKS) https://promptauth.dev/.well-known/jwks.json
1. Envoyer l'utilisateur vers PromptAuth
Génère un code_verifier aléatoire, son code_challenge (SHA-256 en base64url), un state et un nonce.
GET https://promptauth.dev/api/v1/authorize ?response_type=code &client_id=pa_pub_… &redirect_uri=https://monapp.com/auth/callback &state=…&nonce=… &code_challenge=…&code_challenge_method=S256
L'adresse de retour doit correspondre exactement à l'une de celles enregistrées dans ton projet.
2. Échanger le code
Le code expire après 60 secondes et ne sert qu'une fois.
POST https://promptauth.dev/api/v1/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=…&client_id=pa_pub_… &redirect_uri=https://monapp.com/auth/callback&code_verifier=…
{
"id_token": "eyJhbGciOiJFUzI1NiIs…",
"token_type": "Bearer",
"expires_in": 3600,
"user": { "id": "…", "email": "ada@example.com", "email_verified": true,
"name": "Ada", "picture": "https://…" }
}Sans PKCE, un serveur peut s'authentifier avec sa clé secrète : Authorization: Bearer pa_sk_….
3. Vérifier le jeton
import { createRemoteJWKSet, jwtVerify } from "jose";
const jwks = createRemoteJWKSet(new URL("https://promptauth.dev/.well-known/jwks.json"));
const { payload } = await jwtVerify(idToken, jwks, {
issuer: "https://promptauth.dev",
audience: process.env.PROMPTAUTH_CLIENT_ID,
algorithms: ["ES256"],
});
// payload.sub = identifiant stable de l'utilisateur pour TON projetErreurs renvoyées à ton app
Si l'utilisateur annule ou si ta limite d'utilisateurs est atteinte, PromptAuth renvoie vers ton adresse de retour avec error=access_denied et un error_description lisible à afficher, dans la langue du navigateur de l'utilisateur.
Prêt ? Crée ton projet pour obtenir ton prompt.