@forrestjs/service-express-cookies v3.19.0
@forrestjs/service-express-cookies
ForrestJS service which helps handling cookies in an ExpressJS server.
Usage
This extension decorates the req and res object in an ExpressJS request.
Use the methods as in the following example to read/write to cookies.
// Server Side Cookies
res.setCookie('cookieName', 'value', { /* override options */ })
res.deleteCookie('cookieName')
req.getCookie('cookieName') // -> value
// Client Side Cookies
res.setClientCookie('cookieName', 'value', { /* override options */ })
res.deleteClientCookie('cookieName')
req.getClientCookie('cookieName') // -> valueAppCookies can not be accessed by the client and go in https-only by default
when NODE_ENV=production.
ClientCookies can be accessed by the client and therefore are not super safe. Use those with caution.
The override options argument is optional and allow to override any pre-configured
setting that is passed down to res.cookie.
NOTE: maxAge can be set as string like 5 minutes and gets parsed by
millisecond.
Configuration
const { runHookApp } = require('@forrestjs/hooks')
runHookApp({
settings: {
express: {
port: 8080,
},
expressCookies: {
scope: 'XXX',
secure: false,
httpOnly: true,
duration: '30d',
separator: '::',
clientDuration: '30d',
clientSeparator: '--',
}
},
services: [
require('@forrestjs/service-express'),
require('@forrestjs/service-express-cookies'),
],
features: [
({ getHook }) => [getHook('EXPRESS_ROUTE'), ({ registerRoute }) => {
registerRoute.get('/', (req, res) => {
res.setCookie('foo', 123)
res.setClientCookie('foo', 123)
res.send('ok')
})
}]
]
})scope
scope is a string that prefix any cookie name you will ever use. It's cool to work
on multiple apps in development and still avoid conflicts ;-)
secure
Forces cookies to apply only to https connections.
default: isDevOrTest ? false : true
it applies to Server Side cookies only
httpOnly
Hides cookies from client side access.
default: true
it applies to Server Side cookies only
duration
default: 300y
separator
default: ::
clientDuration
default: ${duration}
clientSeparator
default: --
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago