4. cookie
1. 简介
- http是无状态协议。也就是服务器无法识别各个请求是否来自于同一个用户浏览器
- Cookie是存储于访问者计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据
- 服务器在下行http报文中,命令浏览器存储一个字符串,浏览器再访问
同一个域的时候,把这个字符串携带到http请求中。
2. 使用cookie
- express中需要用到cookie-parser模块
- 在Application/Cookies中可以查看到,所以一般需要加密
- cookie第三个参数 path
const cookieParser = require('cookie-parser')// 设置中间件app.use(cookieParser())app.use((req, res, next => {// 设置cookieres.cookie('name', 'zhangsan', {maxAge: 900000, httpOnly: true})// 获取cookieconst { name } = req.cookies})
3. 参数讲解
res.cookie('name', 'value', optionObj)
第三个参数optionObj的一些字段说明
- path: 指定哪些路由可以访问cookie
- httpOnly: 设置后仅可在node.js中操作cookie
- maxAge: cookie失效时间。是一个倒计时
- expires:过期时间。是设置某个时间点,在那之后就失效了
- domain: 设置后,同一个域的二级域名(如a.xx.com和b.xx.com)可以相互访问cookie。需要设置为
{domain: '.xx.com'} - signed: 签名,即加密。需要额外配置
- secure: 仅https加密协议有效
// 配置cookie加密// 1. 配置cookie中间件的时候传入加密参数app.use(cookieParser('gin'))// 2. 正常设置cookieres.cookie('username', 'zhangsan', {maxAge: 10000})// 3. 获取加密的cooiereq.signedCookies
