How to store, read and delete cookies and sessions in Nest.js
?
Should I use this:
@nestjs/common > session
Or should I use js-cookie?
How to store, read and delete cookies and sessions in Nest.js
?
Should I use this:
@nestjs/common > session
Or should I use js-cookie?
Create Cookie
async myMethod(@Req() req, @Res() res) {
res.cookie('session', myCookieData, myOptionalCookieOptions);
....
Read Cookie
async myMethod(@Req() req, @Res() res) {
req.cookies['session']; // If unsigned cookie;
req.signedCookies['session']; // If signed cookie;
Store Cookie
You can store the cookie wherever you like. However, if you are using it for auth then check out @nestjs/passport link
Delete Cookie
async myMethod(@Req() req, @Res() res) {
res.clearCookie('session', mySameOptionsFromCreationOfCookieMustMatch);
Note: "Web browsers and other compliant clients will only clear the cookie if the given options is identical to those given to res.cookie(), excluding expires and maxAge." link
at the moment in order to add, create, update or delete a cookie you need to install express dependency named cookie-parser
to the main.ts
in order to parse the cookie first and then process it in the way you want.
cookie-parser
npm i cookie-parser
npm i -D @types/cookie-parser
cookie-parser
as global middleware in main.ts
import * as cookieParser from 'cookie-parser';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.ts';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// somewhere in your initialization file
app.use(cookieParser());
await app.listen(3000);
}
bootstrap();
Use the Request & Response type from express
// auth.controller.ts
@Get('/logout')
cookie(@Req() request: Request, @Res() response: Response) {
console.log(request.cookies); // or "request.cookies['name']"
response.cookie('key', 'value') // for setting the cookie
}
there's more information for cookie configuration with Fastify and more explained in docs
© 2022 - 2025 — McMap. All rights reserved.