最新要闻
- 2023年5月24日正己酸价格最新行情预测|时讯
- 环球快看:小米组建AI实验室大模型团队:AI领域人员已超1200人
- 大的要来了!国产3A大作《黑神话:悟空》官方B站上号|世界时讯
- 天天热点评!多品牌多口味正大促! 真真老老地道嘉兴肉粽:四枚9.9元
- 每日时讯!浙江宁波老旧车辆淘汰补贴:单车最高可补5.7万元
- 小米13系列成了!在安卓4000-5000价位份额第一名
- 小花猪Ai绘画!粉红色的回忆,粉红色的我!记忆有你也有我! 热消息
- 弘扬绿色健康饮食文化-热闻
- 天天信息:热搜第二!网友月薪5000两年存了8万元:分享7个实用存钱技巧
- 卖一个赚46块!激光雷达首次盈利 禾赛科技:感谢理想 世界时讯
- 实时:清新口气 有效抑菌!纳美亮白牙膏:6支仅14.9元
- 里程碑!小米宣布:MIUI全球月活用户突破6亿
- 环球新资讯:距离月面10米失联!NASA:日本登月失败登月舱残骸或找到
- 世界观点:被曝北约考虑在日设联络处后,岸田宣称日本没有加入北约计划
- 苦等几十年!Windows终于原生支持rar、7z等格式压缩文件了|全球视点
- 车标贴满全身!梅赛德斯-迈巴赫Night Series官图发布:真奢华
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点速讯:会话控制
会话控制
1、介绍
所谓会话控制,就是对会话进行控制。
(相关资料图)
HTTP是一种无状态协议,它没有办法区分多次请求是否来自同一个客户端,无法区别用户。
而产品中又大量存在这样的需求,所以我们需要通过会话控制来解决这个问题。
常见的会话控制技术有三种:
- cookie
- session
- token
2、cookie
2.1、cookie是什么?
cookie是HTTP服务器发送到用户浏览器并保存在本地的一小块数据。
cookie是保存在浏览器端的一小块数据。
cookie是按照域名划分保存的。
简单示例:
域名 | cookie |
---|---|
www.baidu.com | a=100;b=200 |
www.bilibili.com | xid=102abce121;hm=12312323 |
2.2、cookie的特点
浏览器向服务器发送请求的时候,会自动将当前域名下可以使用的cookie设置在请求头中,然后传递给服务器。
这个请求头的名字也叫做cookie,所以将cookie理解为HTTP的请求头也可以。
服务器就可以通过浏览器传过来的cookie中的值,来辨认客户的身份。
2.3、express中操作cookie
2.3.1、设置和删除 cookie
const express = require("express");const app = express();app.get("/set-cookie", (req, res) => { // 设置cookie // res.cookie("name", "zhangsan"); // 会在浏览器关闭的时候,销毁 res.cookie("name", "lisi", {maxAge: 60 * 1000}); // maxAge的单位是毫秒,这里设为有效期一分钟 res.send("设置cookie");});app.get("/remove-cookie", (req, res) => { // 删除cookie res.clearCookie("name"); // 比如用户退出登录的时候删除 res.send("删除cookie");});app.listen(3000);
2.3.2、获取cookie
使用cookie-parser库:
npm i cookie-parser
const express = require("express");const cookieParser = require("cookie-parser");const app = express();app.use(cookieParser());app.get("/set-cookie", (req, res) => { // 设置cookie // res.cookie("name", "zhangsan"); // 会在浏览器关闭的时候,销毁 res.cookie("name", "lisi", {maxAge: 60 * 1000}); // maxAge的单位是毫秒,这里设为有效期一分钟 res.send("设置cookie");});app.get("/remove-cookie", (req, res) => { // 删除cookie res.clearCookie("name"); // 比如用户退出登录的时候删除 res.send("删除cookie");});// 获取cookieapp.get("/get-cookie", (req, res) => { console.log(req.cookies); res.send("获取cookie成功");})app.listen(3000);
3、session
3.1、session是什么?
session是保存服务器端的一块数据,保存当前访问用户的相关信息。
3.2、session的作用
实现会话控制,可以识别用户的身份,快速获取当前用户的相关信息。
3.3、session运行流程
填写账号密码校验身份,校验通过之后创建session信息,然后将session_id的值通过响应头set-cookie返回给浏览器。
有了cookie,下次发送请求的时候会自动携带这个cookie,服务器通过cookie中的session_id的值确定用户的身份。
3.4、express中操作session
express中可以使用express-session对session进行操作。
npm i express-session
npm i connect-mongo(用户连接数据库,配置好之后,下述代码中的session会自动在数据库中进行增删改查)
const express = require("express");const session = require("express-session");const MongoStore = require("connect-mongo");const app = express();// 设置session中间件app.use(session({ name: "sid", // 设置cookie的name,默认值是connect.id secret: "chen", // 参与加密的字符串(又称签名) saveUninitialized: false, // 是否在每次请求都设置一个cookie用来存储session的id resave: true, // 是否在每次请求时重新保存session store: MongoStore.create({ mongoUrl: "mongodb://127.0.0.1:27017/project" // 数据库的连接配置 }), cookie: { httpOnly: true, // 开启后前端无法通过JS访问和操作(document.cookie访问) maxAge: 1000 * 300 // 这一条是控制sessionID的过期时间,浏览器端cookie过期了,服务端的session也过期了 }}));// 首页路由app.get("/home", (req, res) => { res.send("home");});// 登录app.get("/login", (req, res) => { // username=admin&password=admin if (req.query.username === "admin" && req.query.password === "admin") { // 设置session信息 req.session.username = "admin"; // 成功响应 res.send("登录成功"); } else { res.send("登录失败"); }});// session的读取app.get("/car", (req, res) => { // 检测session是否存在用户数据 if (req.session.username) { res.send("购物车页面,欢迎光~~~临"); } else { res.send("请登录"); }});// session的销毁app.get("/logout", (req, res) => { req.session.destroy(() => { res.send("退出成功"); });});app.listen(3000);
4、session和cookie的区别
- 1、存在位置
- cookie:浏览器端
- session:服务器端
- 2、安全性
- cookie是以明文的方式存放在客户端的,安全性相对较低
- session是存在于服务器中,安全性较好
- 3、网络传输量
- cookie设置内容过多会增大报文体积,影响传输效率
- session数据存储在服务器,只是通过cookie传递id,所以不影响传输效率
- 4、存储限制
- 浏览器限制单个cookie的保存数据不能超过4k,且单个域名下的存储数量也有限制
- session存储在服务器中,没有这些限制。
5、token
5.1、token是什么?
token是服务端生成并返回给HTTP客户端的一串加密字符串,token中保存着用户信息。
5.2、token的作用
实现会话控制,可以识别用户的身份,主要用户移动端APP
5.3、token的工作流程
填写账号和密码校验身份,校验通过之后服务器创建并响应token,token一般是在响应体中返回给客户端的。
后续发送请求的时候,需要手动将token添加在请求报文中,一般是放在请求头中。
5.4、token的特点
- 服务端压力更小
- 因为数据是存储在客户端
- 相对更安全
- 数据加密
- 可以避免CSRF(跨站请求伪造)
- 扩展性更强
- 服务之间可以共享
- 增加服务节点更简单
5.5、JWT
JWT(JSON Web Token)是目前最流行的跨域认证解决方案,可以基于token进行身份验证。
JWT使token生成和校验更加规范。
我们可以使用jsonwebtoken包来操作token。
npm i jsonwebtoken
const express = require("express");const jwt = require("jsonwebtoken");const app = express();// 创建token// let token = jwt.sign(用户数据,加密字符串,配置对象)// let token = jwt.sign({// username: "zhangsan"// }, "chen", {// expiresIn: 3600 // 单位是秒// });// console.log(token);let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InpoYW5nc2FuIiwiaWF0IjoxNjg0MTM1MjIwLCJleHAiOjE2ODQxMzg4MjB9.x2pzuCKp78BDzMv1kzsukS-W9TkLUFgC3PYGUyhqeSo";// 校验tokenjwt.verify(token, "chen", (err, data) => { if (err) { console.log("校验失败"); return; } console.log(data);});app.listen(3000);
关键词:
焦点速讯:会话控制
2023年5月24日正己酸价格最新行情预测|时讯
环球快看:小米组建AI实验室大模型团队:AI领域人员已超1200人
大的要来了!国产3A大作《黑神话:悟空》官方B站上号|世界时讯
天天热点评!多品牌多口味正大促! 真真老老地道嘉兴肉粽:四枚9.9元
每日时讯!浙江宁波老旧车辆淘汰补贴:单车最高可补5.7万元
小米13系列成了!在安卓4000-5000价位份额第一名
小花猪Ai绘画!粉红色的回忆,粉红色的我!记忆有你也有我! 热消息
天天精选!功能安全、预期功能安全与信息安全的差异与协同
智慧黄河:实现流域智能化管理的关键一步|环球报资讯
全球实时:记录--按钮级别权限怎么控制
全球观点:债市日报:5月24日
弘扬绿色健康饮食文化-热闻
天天信息:热搜第二!网友月薪5000两年存了8万元:分享7个实用存钱技巧
卖一个赚46块!激光雷达首次盈利 禾赛科技:感谢理想 世界时讯
实时:清新口气 有效抑菌!纳美亮白牙膏:6支仅14.9元
里程碑!小米宣布:MIUI全球月活用户突破6亿
环球新资讯:距离月面10米失联!NASA:日本登月失败登月舱残骸或找到
未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配 全球微头条
理解JS中的Promise
一步步完整搭建一个图纸管理系统(Django+Vue3)
【MyBatis】saveBatch 性能调优|即时焦点
世界观点:被曝北约考虑在日设联络处后,岸田宣称日本没有加入北约计划
苦等几十年!Windows终于原生支持rar、7z等格式压缩文件了|全球视点
车标贴满全身!梅赛德斯-迈巴赫Night Series官图发布:真奢华
【全球聚看点】699元 联想YOGA K7机械键盘上架:82键矮轴 真空电镀工艺
AI网聊10分钟被骗430万 中国互联网协会给出防范建议
环球今头条!国内多航司现千元内国际机票 上海直飞日本仅600元
西部决赛:掘金淘汰洛杉矶湖人的背后,藏着多少鲜为人知的秘密-热消息
es之增删改查 每日播报
顶象全新金融业务安全方案,亮相亚太银行数字化峰会
Java开启异步的两种方式
Python文件读写、StringIO和BytesIO_每日速看
动态:Ruby教程_编程入门自学教程_菜鸟教程-免费教程分享
【环球新要闻】【新华500】新华500指数(989001)24日下跌1.28%
安卓不再清后台 OPPO Reno10系列用上16GB大内存:48个月流畅
Find系列同款!OPPO Reno10 Pro搭载动态光影屏:120Hz高刷
视点!不怕别人超越!“比亚迪魔方”储能系统发布:首搭刀片电池
环球新消息丨349元 OPPO Enco R2耳机发布:Hi-Fi级处理芯片
支付宝提醒“学生账户升级”骗局:没有学生/成人账户概念!
焦点快播:Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
火山引擎DataLeap联合DataFun发布《数据治理知识地图》_世界新消息
当前要闻:推荐一个AI导航网站 - 收录的都是热门AI工具
社区工作者感受垃圾分类处理全过程
北京西京医院杨博华_北京西京医院
64核CPU、显卡三连冠 AMD超算屠榜:唯一一台百亿亿次
国产SSD卷疯了!梵想S500 Pro 2TB只要409元 观天下
最轻薄潜望手机!OPPO Reno10 Pro+亮相
当前关注:搭载4.0L水平对置发动机 300万的保时捷中国开卖:但不能上路
淮北建投20亿元公司债将付息 利率6.30%
springboot~mybatis-plus的DynamicTableNameInnerInterceptor实现分表
用上3.0T直六发动机!马自达旗舰CX-90现身:今年内国产_天天看热讯
今日播报!Win11最新版发布:性能更好更丝滑
粤港澳大湾区首个京粤产业协作中心挂牌并落户广州黄埔 快播报
苹果WWDC23终极“剧透”:iOS 17登场 首款头显万众期待 天天精选
天天热点评!《原神》3.7版本正式上线!原神首个卡牌赛事登场
99包邮手慢无!匹克路威篮球鞋2折清仓(门店469元)
脾气真大!一特斯拉插队未遂现场报复:直接加速撞车 全球快看
甄子丹出演苹果广告:叶师傅 切他中路!|当前焦点
焦点播报:“五一”假期出行,伴随着哪些风险
全网最全的编程电子书大合集,超千本打包下载
求求你,不要再把ER图和数据库模型图搞混了好嘛?
【一步步开发AI运动小程序】六、人体骨骼图绘制|聚焦
全球观点:云图说丨初识商标注册服务
切辣椒手很辣该怎么办_切辣椒手辣要几个小时消失
焦点速讯:《街霸6》将迎合新一代玩家:隆、肯和春丽等老角色将被取代
今日精选:女孩减肥去世 体重仅24.8公斤!科普神经性厌食危害
“BOSS直聘崩了”登上热搜 公司回应:PC端异常 已紧急修复
电竞首次入赛!杭州亚运会《DOTA2》国家集训队名单出炉:共27人
今日关注:轻微交通事故APP快处 全国首批36城上线!附操作方法
微软重磅宣布!Windows 的“ AI 时刻”来了_环球新消息
【解决方法】SecureCRT远程工具无法show命令无法使用管道符完成中文过滤检索
Apache Hudi 在袋鼠云数据湖平台的设计与实践
CloudQuery v2.0.0 发布 | 新增数据保护、数据变更、连接管理等功能_环球观点
动态:JavaScript基础语法之 || 和 ?? 的踩坑记录
里夫斯:我在发声上做得不如詹眉 但高的篮球IQ会帮我提高领导力 世界微资讯
昆明国资委:“昆明银行口专家路演要点”和《昆明城投专家会议纪要》不实-焦点热门
微动态丨吉利也来“围攻”比亚迪 银河L7上市定档:1.5T插混能跑1300km
官网不停运!亚马逊中国回应7月关闭应用商店:不影响业务运营 天天快播报
迎来重磅更新!Win11文件管理器界面UI将整体重做
低价游太空梦破碎!维珍轨道破产 三大航空公司瓜分其资产|今日快看
双摄像头一览无余!萤石Y3000FVX极光人脸视频锁图赏|世界快资讯
【世界播资讯】现场直击|凯瑞特亮相CTT Expo 2023,热度飙升,实力圈粉
焦点讯息:sipp重放rtp数据测试FreeSWITCH
Algorithm_01--C#递归算法02 每日速看
HTML中的attribute 和 property
世界快资讯:Wi-Fi 6都没玩明白 怎么就惦记上Wi-Fi 7了?
今日关注:马斯克:已确定特斯拉接班人、自己有意外他将接管公司
速递!星巴克家享黑咖啡2.5元/杯大促 原价15元
世界微动态丨明天发布!小米Civi 3首发天玑8200-Ultra:能效、影像增强
千呼万唤始出来!微软官宣Win11任务栏不合并将回归
农发行广西区分行与东兰县签署战略合作协议
苹果MR或将推出 “果链”企业频受调研_环球快消息
骆仁童老师主讲《数字经济下电力业转型》课程 | 河北某地热电企业-2023年中高层管理人员培训班(二期)
80年代曾风靡全球 乐高为“吃豆人”游戏打造了一款街机 还能玩 焦点快看
世界热点评!新能源汽车高歌猛进 5月销量预计大增60% 渗透率超1/3
乌冬面里吃出活青蛙 日本连锁店鞠躬道歉:网友看完大呼恶心|世界热闻
越南打工人不加班逼急中国老板 不为钱放弃生活:全球各国每日工作时间一览-世界快讯
美国债务上限谈判未破僵局 避险美债再获追捧
为什么说人民币汇率不会大起大落-全球快播报