Documentation / @zerotal/auth / JwtGuardMiddleware
Class: JwtGuardMiddleware
Defined in: auth/src/JwtGuardMiddleware.ts:38
Authenticate a request from a stateless HS256 JWT bearer token (a populate
step, like BearerTokenMiddleware / PersistUserMiddleware — it never blocks;
guard the route with AuthMiddleware).
Reads the bearer token, verifies it with Jwt, and sets ctx.user from
the resolve callback. Provide secret and resolve via .with(...):
Remarks
When secret is omitted it falls back to JWT_SECRET, then APP_KEY, from the
environment. If neither a secret nor a resolve callback is available the
middleware is a no-op (the request passes through unauthenticated). A token that
fails Jwt.verify — malformed, non-HS256, tampered, wrong-secret, or
expired — leaves ctx.user unset rather than throwing.
Example
const JwtGuard = JwtGuardMiddleware.with({
secret: Bun.env.JWT_SECRET!,
resolve: (claims) => User.find(Number(claims.sub)),
});
Router.get("/api/me", MeController, "show", [JwtGuard, AuthMiddleware]);
Extends
Constructors
Constructor
new JwtGuardMiddleware():
JwtGuardMiddleware
Defined in: core/src/middleware/BaseMiddleware.ts:36
Returns
JwtGuardMiddleware
Inherited from
Properties
options
protectedoptions:JwtGuardOptions={}
Defined in: auth/src/JwtGuardMiddleware.ts:39
Subclasses must declare this with their default option values. TypeScript enforces this at compile time — forgetting it is a type error.
Overrides
Methods
handle()
handle(
http,next):Promise<void|Response>
Defined in: auth/src/JwtGuardMiddleware.ts:41
Parameters
http
next
Returns
Promise<void | Response>
Overrides
with()
staticwith<T,Opts>(this,options): () =>InstanceType<T>
Defined in: core/src/middleware/BaseMiddleware.ts:48
Returns a zero-arg subclass with the given options deep-merged on top of the subclass defaults, usable directly in app.use([...]).
Type Parameters
T
T extends (...args) => BaseMiddleware<any>
Opts
Opts = T extends (...args) => BaseMiddleware<U> ? U : object
Parameters
this
T
options
Partial<Opts>
Returns
() => InstanceType<T>
Inherited from
afterResponse()?
optionalafterResponse(ctx):Promise<void>
Defined in: core/src/middleware/BaseMiddleware.ts:70
Parameters
ctx
Returns
Promise<void>
Inherited from
onError()?
optionalonError(ctx,error):Promise<void>
Defined in: core/src/middleware/BaseMiddleware.ts:71
Parameters
ctx
error
Error
Returns
Promise<void>