nodejs获取与设置cookie

一、获取cookie

1.插件下载

在nodejs下不太好直接获取到request里面的cookie,需要安装cookie-parser插件来获取
安装:

npm install cookie-parser --save

使用:

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

获取cookie

当我们使用了cookieParser之后,就能直接在request中取出cookie了
具体实现:

app.get('/views', (req, res) => {
  console.log(req.cookies);
  res.send("测试")
})

在这里插入图片描述
在这里插入图片描述
**注意:**如果前端是通过接口调用,记得在配置ajax时设置允许携带接口访问
jQuery设置:

$.ajax({
      url: "http://localhost:3010/login/userLogin",
      type: "POST",
      dataType: "json",
      data: JSON.stringify(formData),
      xhrFields: {
        withCredentials: true //允许跨域带Cookie
      },
      headers:{
        Accept: "application/json" ,
        "Content-Type" : "application/json"
      },
      success: function(result){
        console.log('success')
      }
    });

axios设置:

import axios from "axios";
axios.defaults.withCredentials = true; // 允许请求的时候带上cookie

二、设置cookie

设置cookie不需要插件也可进行,但是如果是通过接口调用,不仅前端需设置允许携带cookie,也要在后端配置允许跨域
例如:

// 如果前端允许传递cookie,加上这一句
  res.header("Access-Control-Allow-Credentials", "true");

语法:
res.cookie(key, value, options)
key:cookie名称
value:cookie的值
options:其他配置项(对象形式)可选

具体代码:

const express = require('express')
const app = express();
app.get('/login', (req, res) => {
  res.cookie("token", "123456789");
  res.send('登录')
})

1.基础设置

/*
 * 在默认域名下设置的cookie(项目所监听的域名,本地则默认是localhost),在localhost下的所有路由可以访问到
 * */
 res.cookie("token", "123456789");

实现结果:
在这里插入图片描述
我们切换一下端口号和路径:
即使没有这个网页,cookie依然被设置:
在这里插入图片描述

2.设置过期时间-maxAge

在options中配置maxAge属性即可,值为数字,以毫秒为单位

res.cookie("token", "123456789", {maxAge: 600000});

在这里插入图片描述
设置的时间是国际标准时间:2020-12-17 08:06:24
加上8小时即是北京时间:2020-12-17 16:06:24
刚好比我当前时间多10分钟

3.设置域名-domain

domain可以设置域名:类似 csdn.net,也可以设置IP地址:类似 127.0.0.1。

res.cookie("token", "123456789", {domain:'127.0.0.1',maxAge: 600000});

使用localhost访问:
在这里插入图片描述

使用127.0.0.1访问:
在这里插入图片描述

4.设置路径-path

设置路径之后,只有当前域名下的对应路径才能获取到cookie

res.cookie("token", "123456789", {domain:'127.0.0.1',maxAge: 600000, path:'/views'});

在这里插入图片描述

在这里插入图片描述

5.设置httpOnly

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取以及修改cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性。

res.cookie("token", "123456789", {domain:'localhost',maxAge: 600000, path:'/views', httpOnly: true});

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值