5.nestjs cookie的配置和使用

安装和配置

1. 安装

npm install cookie-parser --save

2. 配置

2.1 main.ts 中引入 cookie-parser

import * as cookieParser from 'cookie-parser' 

2.2. main.ts 配置中间件

app.use(cookieParser()); 

3.设置cookie

res.cookie('username', 'aabbcc我是cookie', {maxAge: 1000*60*10, httpOnly: true})

4.获取cookies

@Get('cookie')
getCookie(@Request() req){
    console.log(req.cookies.username);
    return req.cookies.username;
}

cookie加密

1.main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { join } from 'path';
import * as cookieParser from 'cookie-parser';

async function bootstrap() {
  // ...
  
  // 配置cookie中间件,()里面写上东西
  app.use(cookieParser('this signed cookies'));
  await app.listen(3000);
}
bootstrap();

2. 在article.controller中添加加密cookie

import { Controller, Get, Response } from '@nestjs/common';
@Controller('article')
export class ArticleController {
    @Get()
    index(@Response() res){
        // 设置cookie,signed启用加密
        res.cookie('username', 'aabbcc我是cookie', {maxAge: 1000*60*10, httpOnly: true, signed: true})
        // 注:res和return不能同时使用,否则卡死
        // return '这是文章页面'; 
        res.send('这是文章页面');
    }
}

3.在user.controller中读取cookie

import { Body, Controller, Get, Post, Render, Response, Request } from '@nestjs/common';
@Controller('user')
export class UserController {
    // ...
    // 获取cookie
    @Get('cookie')
    getCookie(@Request() req){
        // 1. 获取普通cookie
        // console.log(req.cookies.username);

        // 2. 获取加密cookie
        console.log(req.signedCookies.username);
        return req.signedCookies.username;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值