Auth.js (Next.js, SvelteKit…)
Le paquet @pismile/authjs ajoute pismile à Auth.js en une ligne, claims pismile comprises.
@pismile/authjs préconfigure tout ce que le guide Next.js fait à la main : PKCE, state et nonce, secret en client_secret_basic, et les claims pismile dans la session.
Installez le paquet
Terminalnpm install next-auth@beta @pismile/authjs npx auth secretAjoutez vos identifiants
Adresse de redirection à déclarer dans la console :
http://localhost:3000/api/auth/callback/pismile..env.localAUTH_SECRET=... AUTH_PISMILE_ID=VOTRE_CLIENT_ID AUTH_PISMILE_SECRET=votre_secret AUTH_PISMILE_ISSUER=https://pismile.comDéclarez le fournisseur
auth.tsimport NextAuth from "next-auth"; import Pismile, { pismileCallbacks } from "@pismile/authjs"; export const { handlers, auth, signIn, signOut } = NextAuth({ providers: [Pismile()], callbacks: pismileCallbacks, });app/api/auth/[...nextauth]/route.tsimport { handlers } from "@/auth"; export const { GET, POST } = handlers;Utilisez la session
app/page.tsximport { auth, signIn } from "@/auth"; export default async function Home() { const session = await auth(); if (!session?.user) { return ( <form action={async () => { "use server"; await signIn("pismile"); }} > <button type="submit">Se connecter avec pismile</button> </form> ); } return ( <p> Bonjour {session.user.name} ({session.user.pismile?.country}) </p> ); }
Ce que contient la session#
Propriété | Exemple | Description |
|---|---|---|
|
|
|
|
| Nom vérifié du titulaire |
|
| Pays du compte |
|
| Catégorie : |
|
| Dernière vérification de l'alias |
Options#
Option | Exemple | Effet |
|---|---|---|
|
| Scopes demandés (défaut : |
|
| Nouvelle vérification si la dernière date de plus de 300 secondes |
|
| Nouvelle vérification à chaque connexion |
Action sensible#
import { isRecentlyVerified } from "@pismile/authjs";
const session = await auth();
if (!isRecentlyVerified(session?.user, 300)) {
await signIn("pismile", undefined, { prompt: "login" });
}Cette page vous a-t-elle aidé ?
Merci, votre avis nous aide à améliorer la documentation.