Request Headers Plugin
The Request Headers Plugin allows you to access request headers in oRPC. It injects a reqHeaders instance into the context, enabling you to read incoming request headers easily.
INFO
What's the difference vs passing request headers directly into the context? There's no functional difference, but this plugin provides a consistent interface for accessing headers across different handlers.
Context Setup
ts
import { getCookie } from '@orpc/server/helpers'
import { RequestHeadersPluginContext } from '@orpc/server/plugins'
interface ORPCContext extends RequestHeadersPluginContext {}
const base = os.$context<ORPCContext>()
const example = base
.use(({ context, next }) => {
const sessionId = getCookie(context.reqHeaders, 'session_id')
return next()
})
.handler(({ context }) => {
const userAgent = context.reqHeaders?.get('user-agent')
return { userAgent }
})INFO
Why can reqHeaders be undefined? This allows procedures to run safely even when RequestHeadersPlugin is not used, such as in direct calls.
TIP
Combine with Cookie Helpers for streamlined cookie management.
Handler Setup
ts
import { RequestHeadersPlugin } from '@orpc/server/plugins'
const handler = new RPCHandler(router, {
plugins: [
new RequestHeadersPlugin()
],
})INFO
The handler can be any supported oRPC handler, such as RPCHandler, OpenAPIHandler, or another custom handler.
