天天看點

5.nestjs cookie的配置和使用安裝和配置cookie加密

nestjs cookie的配置和使用

  • 安裝和配置
    • 1. 安裝
    • 2. 配置
    • 3.設定cookie
    • 4.擷取cookies
  • 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;
    }
}
           

繼續閱讀