Astro.locals
Astro.locals is a per-request object for passing data from middleware to pages and endpoints.
Syntax
const user = Astro.locals.user Returns
object — A request-scoped object populated by middleware.
Examples
---
// src/middleware.ts sets context.locals.user
const user = Astro.locals.user;
---
{user ? <p>Hi {user.name}</p> : <a href="/login">Sign in</a>}
Output
Shows a personalized greeting or a sign-in link based on data injected by middleware.
Notes
Populated in middleware via context.locals and read here. Each request gets a fresh object, avoiding cross-request leakage. Extend the App.Locals interface in env.d.ts for type safety.