Middleware
XID ne publie aucun paquet sur un registre. Ce SDK est distribué sous forme de code source dans le dépôt XID ; utilisez-le depuis une copie locale du dépôt.
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.