
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
A configurable lightweight ExpressJs middleware for jsonwebtoken to validate tokens sent as cookies instead of headers.

Lightweight and configurable ExpressJS middleware to decode and verify jsonwebtoken JWTs that are sent via cookies.
Let the gate-guard protect your resources by deciding what calls make it through or not.
Requires Node 8 or later
npm i --save gate-guard
# or
yarn add gate-guard
This example will protect all routes listed after the middleware behind the jwt verification.
import gateGuard from 'gate-guard';
// jwtSecret must match the secret used to sign the jwt
app.use(gateGuard({ jwtSecret: 'shh' }))
// Routes here
| Option | Default Value | Required | Description |
|---|---|---|---|
jwtSecret | undefined | Yes | The secret/cert that was used to sign/encode the JWT |
whitelist | [] | Optional | Allow certain endpoints or endpoint groups to bypass jwt checking. Example registration, login, forgot password. Simply calls next() if req.path is whitelisted. Supports globbing patterns via picomatch. |
missingTokenErrorStatus | 401 | Optional | HTTP status returned when the key for the jwt is missing from cookies. |
missingTokenErrorMessage | 'Missing token.' | Optional | Message to show when there is no cookie containing the JWT present at all. |
verifyTokenErrorStatus | 403 | Optional | HTTP status returned when the provided JWT failed to verify. |
verifyTokenErrorMessage | 'Invalid jwt.' | Optional | HTTP Message returned when the provided JWT failed to verify. |
cookieName | 'token' | Optional | The key where the JWT can be found within the req.cookies object. |
jwtVerifyOptions | {} | Optional | Pass-through for native configs of the jwt.verify method |
app.use(gateGuard({
jwtSecret,
whitelist: [
'/api/registration/verify',
'/api/registration/create/account',
'/api/registration/create/profile',
]
}));
Supports globbing via the picomatch library
// The same example above can be written as
app.use(gateGuard({
jwtSecret,
whitelist: ['/api/registration/**']
}));
// All common glob patterns supported
app.use(gateGuard({
jwtSecret,
whitelist: [
'/api/*/create/account',
'/api/**/profile/*',
]
}));
// Note on matching
app.use(gateGuard({
jwtSecret,
// This will whitelist any sub-routes of /api/registration/
// But the base route /api/registration itself will not be whitelisted
whitelist: ['/api/registration/**']
}));
FAQs
A configurable lightweight ExpressJs middleware for jsonwebtoken to validate tokens sent as cookies instead of headers.
We found that gate-guard demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.