Skip to main content

Express Adapter

Package: @nauth-toolkit/core Type: Framework Adapter

import { ExpressAdapter } from '@nauth-toolkit/core';

ExpressAdapter

Constructor

new ExpressAdapter();

No configuration required.

Usage

import { NAuth, ExpressAdapter } from '@nauth-toolkit/core';

const nauth = await NAuth.create({
config: {
/* ... */
},
dataSource,
adapter: new ExpressAdapter(),
});

Middleware

Returned by nauth.middleware:

PropertyTypeDescription
clientInfoRequestHandlerInitializes context, extracts IP/UA
csrfRequestHandlerCSRF token validation
authRequestHandlerJWT validation
tokenDeliveryRequestHandlerCookie token delivery

Mount Order

app.use(nauth.middleware.clientInfo); // 1st
app.use(nauth.middleware.csrf); // 2nd
app.use(nauth.middleware.auth); // 3rd
app.use(nauth.middleware.tokenDelivery); // 4th

Helpers

Returned by nauth.helpers:

requireAuth()

requireAuth(options?: { csrf?: boolean }): RequestHandler

Returns 401 if not authenticated.

OptionTypeDefaultDescription
csrfbooleantrueValidate CSRF token

public()

public(): RequestHandler

Marks route as public, bypasses CSRF.

optionalAuth()

optionalAuth(): RequestHandler

Allows authenticated and anonymous access.

getCurrentUser()

getCurrentUser(): IUser | undefined

Returns authenticated user from context.

tokenDelivery()

tokenDelivery(mode: 'json' | 'cookies'): RequestHandler

Overrides token delivery mode for route.

skipRecaptcha()

skipRecaptcha(): RequestHandler

Bypasses reCAPTCHA validation for the route even when globally enabled. Useful for admin routes or internal endpoints.

requireRecaptcha()

requireRecaptcha(): RequestHandler

Enforces reCAPTCHA validation for the route even when not globally enabled. Use for high-risk operations like password reset or account deletion.

getCurrentSession()

getCurrentSession(): string | number | undefined

Returns the current session ID from AsyncLocalStorage context. Only available after nauth.middleware.auth has run.

getClientInfo()

getClientInfo(): ClientInfo | undefined

Returns the client info object from AsyncLocalStorage context (IP address, user agent, device token, etc.). Only available after nauth.middleware.clientInfo has run.

Types

import type { ExpressMiddlewareType } from '@nauth-toolkit/core';
TypeDescription
ExpressMiddlewareTypeExpress middleware function type