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:
| Property | Type | Description |
|---|---|---|
clientInfo | RequestHandler | Initializes context, extracts IP/UA |
csrf | RequestHandler | CSRF token validation |
auth | RequestHandler | JWT validation |
tokenDelivery | RequestHandler | Cookie 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.
| Option | Type | Default | Description |
|---|---|---|---|
csrf | boolean | true | Validate 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';
| Type | Description |
|---|---|
ExpressMiddlewareType | Express middleware function type |