express使用cookie

-

/**
 cookie-parser使用
 安装
 npm install cookie-parser
 使用:
 1、const cookieParser = require('cookie-parser')
 2、app.use(cookieParser())
 3、设置cookie
 res.cookie("name","zhangsan",{maxAge:900000,httpOnly:true})
 4、获取cookie
 req.cookies.name
 5、配置参数说明
 maxAge:number  单位ms  过期时间
 signed:Boolean 是否加密  如果开启加密,浏览器端就会看到一个加密串,并且无法修改,如果修改了,获取时会获取到false
 expries:Date  过期时间 设置cookie过期的日期 和maxAge作用一样
 httpOnly:Boolean 默认是false  如果设置为true 就只能在nodejs后台来访问,不能再前台的javascript中访问了
 path: String 默认不用配置  如果配置,就只能在指定路由(页面)可以访问
 domain: String 域名   可以让同域的二级域名共享cookie 比如aaa.itying.com bbb.itying.com 但不能是 qq.com
        res.cookie("username","zhangsan",{maxAge:1000 * 60 * 60,domain:".itying.com"});
 secure: Boolean 默认为false 代表在http协议生效  如果为true 在只在https协议生效


 cookie加密
  1、配置中间件的时候需要传入秘钥   传入一个字符串
  app.use(cookieParser("itying"))
  2、设置cookie时,需要开启加密
  res.cookie("username","zhangsan",{maxAge:1000 * 60 * 60,signed:true});
  3、获取加密cookie
  req.signedCookies
 */

const express = require("express");
const app = express();
const cookieParser = require('cookie-parser')


// 配置cookieParser中间件
app.use(cookieParser("itying"))

app.get("/",(req,res) => {
  // 设置cookie  key是username  value是张三  过期时间是1小时
  // res.cookie("username","zhangsan",{maxAge:1000 * 60 * 60,path:"/artical"});
  // cookie加密

  res.cookie("username","zhangsan",{maxAge:1000 * 60 * 60,signed:true});
  res.send("首页")

})

app.get("/artical",(req,res) => {
  // 获取cookie
  let username = req.cookies.username;
  res.send("新闻页面---"+username)

})

app.get("/user",(req,res) => {
  // 获取cookie
  let username = req.cookies.username;
  res.send("用户---"+username)

})

app.get("/product",(req,res) => {
  // 获取cookie
  let username = req.signedCookies.username;
  res.send("用户---"+username)

})

app.listen(3000)

 

 

-

posted @ 2021-09-11 22:12  古墩古墩  Views(149)  Comments(0Edit  收藏  举报