Middleware
xidMiddleware() läuft in der Edge Runtime, prüft das Sitzungs-JWT netzwerklos und fügt den Auth-Status in die Anfrage-Header für Server-Komponenten und Route-Handler ein.
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(.*)'],
}Server-Helfer für den 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: {} }
}Exportierte API
| Exportieren | Art | Zweck |
|---|---|---|
xidMiddleware |
function | Edge Runtime Middleware: prüft JWT, fügt Auth-Header ein |
auth |
function | App Router: gibt AuthObject mit userId, orgId, orgRole zurück |
getAuth |
function | Pages Router: gibt AuthObject aus IncomingMessage zurück |
currentUser |
function | App Router: ruft das vollständige Benutzerobjekt über den Server-Auth-Kontext ab |
xidClient |
function | Gibt serverseitigen XidApiClient zurück, der an die aktuelle Anfrage-Authentifizierung gebunden ist |
XID_AUTH_HEADER |
Zeichenkettenkonstante | Header-Name für den Auth-Zustand zwischen Middleware und Server-Komponenten |
XidMiddlewareOptions |
type | Optionen für xidMiddleware: jwtKey, issuer, publicRoutes, ignoredRoutes |
XidServerClientOptions |
type | Optionen für xidClient |
AuthObject |
type | Authentifizierter Zustand: userId, orgId, orgRole, sessionId |
UnauthenticatedAuthObject |
type | Nicht authentifizierter Zustand mit Null-Feldern |
AuthResult |
type | Vereinigung von AuthObject und UnauthenticatedAuthObject |
PaginationParams |
type | Cursor- und Limit-Parameter für Management-API-Listenaufrufe |
PaginatedResponse<T> |
type | Paginierter Antwort-Envelope |
Neuexporte
- Exportiert alle @xid-kit/react-Client-Komponenten und Hooks neu über
export * from "@xid-kit/react". - Neuexporte aus @xid-kit/backend:
verifyToken,verifyWebhook,authenticateRequest,JwksCache,toVerifyKeySet,AppError,BACKEND_ERROR_CODESund alle zugehörigen Typen. - Server-Helfer geben Signiergeheimnisse niemals an Client-Bundles weiter.