Middleware
Statut du registre : UNPUBLISHED. Installez ce SDK uniquement depuis un checkout du code source du dépôt ; n’utilisez pas de registre de paquets externe.
xidMiddleware() vérifie un JWT Bearer ou applicatif explicite dans l’Edge Runtime. Pour une session Core de même origine, il échange le cookie opaque via /v1/sessions/token, vérifie le JWT retourné et injecte l’état d’authentification dans les en-têtes serveur en aval.
import { xidMiddleware } from '@xid-kit/nextjs'
export default xidMiddleware({
jwtKey: JSON.parse(process.env.XID_JWKS_PUBLIC_KEY!),
issuer: 'https://xid.dev',
// This same-origin path must be routed to XID Core.
sessionTokenExchange: { endpoint: '/v1/sessions/token' },
})
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, jwtCookieName, sessionTokenExchange, protectedRoutes, publicRoutes |
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.