欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Express中的Cookie使用

程序员文章站 2022-03-15 09:47:33
...

Cookie介绍

cookie 是存储于用户设备中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。
HTTP 是无状态协议。当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。
Cookie 是一个简单到爆的想法:当访问一个页面的时候,服务器在下行 HTTP 报文中,命令浏览器存储一个字符串; 浏览器再访问同一个域的时候,将把这个字符串携带到上行HTTP 请求中。第一次访问一个服务器,不可能携带 cookie。 必须是服务器得到这次请求,在下行响应报头中,携带 cookie 信息,此后每一次浏览器往这个服务器发出的请求,都会携带这个 cookie。

Cookie使用

var express = require('express');
//引入cookie-parser
var cookieParser = require('cookie-parser');
var app = new express;
app.listen('3001','127.0.0.1');
//使用中间件,其中的参数用于加密
app.use(cookieParser('sign'));
app.get('/',(req,res) => {
	res.send('cookie的使用')
})
app.get('/setCookie',(req,res) => {
	/**
	*设置cookie
	*参数一:cookie名称
	*参数二:cookie值
	*参数三:cookie配置
		*domain: 域名,{domain:'.baidu.com'},baidu.com域名下的页面都可以访问到当前cookie,如news.baidu.com;music.baidu.com等二级域名均能获取到
   		*name=value:键值对,可以设置要保存的 Key/Value,注意这里的 name 不能和其他属性项的名字一样
		*Expires: 过期时间(秒),在设置的某个时间点后该 Cookie 就会失效,如 expires=Wednesday,09-Nov-99 23:12:40 GMT
		*maxAge: 最大失效时间(毫秒),设置在多少后失效
		*secure: 当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效
		*Path: 表示 cookie 只能在当前路径下被访问到,如path:'/getCookie'
		*httpOnly:默认是false,当为true时,只能服务器端进行获取,JS等前端语言无法获取cookie
		*singed:用于cookie加密,防止用户在页面篡改设置好的cookie,因为cookie存储本身是明文的。被篡改的cookie 会被服务器拒绝,并且 cookie值会重置为它的原始值。需要用req.signedCookies来进行获取。
			 当然,你也可以使用其他加密方法,如md5加密等等,先对存储的数据进行加密,然后再进行存储。
	*/
	res.cookie('name','xiaoming',{maxAge:60000,signed:true})
	res.send('设置cookie成功')
})
app.get('/getCookie',(req,res) => {
	//获取cookie
	res.send(req.cookies.name)
	//获取加密之后的cookie
	res.send(req.signedCookies.name)
})
相关标签: cookie

上一篇: 9.17NOIP模拟赛

下一篇: 顺序表