pismile

Auth.js (Next.js, SvelteKit…)

Le paquet @pismile/authjs ajoute pismile à Auth.js en une ligne, claims pismile comprises.

1 min de lecture · Mis à jour le · API v1

Connectez-vous pour voir vos propres identifiants sandbox dans les exemples.

@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.

  1. Installez le paquet

    Terminal
    npm install next-auth@beta @pismile/authjs
    npx auth secret
  2. Ajoutez vos identifiants

    Adresse de redirection à déclarer dans la console : http://localhost:3000/api/auth/callback/pismile.

    .env.local
    AUTH_SECRET=...
    AUTH_PISMILE_ID=VOTRE_CLIENT_ID
    AUTH_PISMILE_SECRET=votre_secret
    AUTH_PISMILE_ISSUER=https://pismile.com
  3. Déclarez le fournisseur

    auth.ts
    import 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.ts
    import { handlers } from "@/auth";
    
    export const { GET, POST } = handlers;
  4. Utilisez la session

    app/page.tsx
    import { 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

session.user.id

c2b18f…

sub pismile, à utiliser comme identifiant

session.user.name

AWA MENSAH

Nom vérifié du titulaire

session.user.pismile.country

TG

Pays du compte

session.user.pismile.category

P

Catégorie : P, C, B ou G (détails)

session.user.pismile.authTime

1760781600

Dernière vérification de l'alias

Options#

Option

Exemple

Effet

scope

"openid profile address"

Scopes demandés (défaut : openid profile)

maxAge

300

Nouvelle vérification si la dernière date de plus de 300 secondes

prompt

"login"

Nouvelle vérification à chaque connexion

Action sensible#

TypeScript
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é ?