Middleware
xidMiddleware() s’exécute sur l’Edge Runtime, vérifie le JWT de session sans réseau et injecte l’état d’authentification dans les en-têtes des requêtes en aval pour les composants serveur et les gestionnaires de route.
import { xidMiddleware } from '@xid-kit/nextjs'
export default xidMiddleware({
jwtKey: process.env.XID_JWKS_PUBLIC_KEY!,
issuer: 'https://xid.dev',
})
export const config = {
matcher: ['/dashboard(.*)', '/api/protected(.*)'],
}Assistants serveur App Router
import { auth, currentUser } from '@xid-kit/nextjs'
export default async function DashboardPage() {
const { userId } = await auth()
if (!userId) return null
const user = await currentUser()
return <p>Welcome {user?.email}</p>
}Pages Router
import { getAuth } from '@xid-kit/nextjs'
export const getServerSideProps = async (ctx) => {
const { userId } = await getAuth(ctx.req)
if (!userId) return { redirect: { destination: '/sign-in', permanent: false } }
return { props: {} }
}API exportée
| Exporter | Type | Objectif |
|---|---|---|
xidMiddleware |
function | Middleware Edge Runtime : vérifie le JWT, injecte les en-têtes d’authentification |
auth |
function | App Router : retourne un AuthObject avec userId, orgId, orgRole |
getAuth |
function | Pages Router : retourne un AuthObject depuis IncomingMessage |
currentUser |
function | App Router : récupère l’objet utilisateur complet via le contexte d’authentification serveur |
xidClient |
function | Retourne un XidApiClient côté serveur lié à l’authentification de la requête actuelle |
XID_AUTH_HEADER |
constante string | Nom d’en-tête pour l’état d’authentification entre middleware et composants serveur |
XidMiddlewareOptions |
type | Options pour xidMiddleware : jwtKey, issuer, publicRoutes, ignoredRoutes |
XidServerClientOptions |
type | Options pour xidClient |
AuthObject |
type | État authentifié : userId, orgId, orgRole, sessionId |
UnauthenticatedAuthObject |
type | État non authentifié avec champs null |
AuthResult |
type | Union de AuthObject et UnauthenticatedAuthObject |
PaginationParams |
type | Paramètres cursor et limit pour les appels de liste de l’API de gestion |
PaginatedResponse<T> |
type | Enveloppe de réponse paginée |
Réexportations
- Réexporte tous les composants client et hooks @xid-kit/react via
export * from "@xid-kit/react". - Réexportations depuis @xid-kit/backend :
verifyToken,verifyWebhook,authenticateRequest,JwksCache,toVerifyKeySet,AppError,BACKEND_ERROR_CODESet tous leurs types associés. - Les assistants serveur n’exposent jamais les secrets de signature aux bundles client.