栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Cookie、Session和Jwt

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Cookie、Session和Jwt

会话控制

会话控制就是弥补http无记忆的缺陷的一种技术

将数据持久化保存到服务器端或者浏览器端让浏览器和服务器进行多次数据交换时产生连续性

什么是cookie

cookie是将数据持久化存储到浏览器(客户端)的一种技术

存储到用户浏览器的一段字符串 ,大小限制4kb以内

键值对的形式: 名 值 和几个可选属性 (有效期 安全性 可用范围)

特性:自动发送未过期的cookie ,不同域名下的cookie各自独立,cookie有过期时限(时效性)

浏览器第一次向服务器发送登录请求后服务器会返回给浏览器一个身份认证的cookie 通过响应头发送cookie给浏览器 浏览器拿到cookie后将它存储到浏览器中

下次向服务器发送请求时将保存的身份cookie通过请求头自动发送给服务器 服务器验证身份响应相应的内容

cookie不具有安全性 浏览器提供了读写cookie身份的api容易被伪造不建议服务器将重要的隐私数据通过cookie传递给浏览器

提升身份验证的安全性:

session

工作原理

浏览器向服务器发送登录信息后服务器将身份信息形成session文件存储到服务器中并返回给浏览器一个cookie 这个cookie不是数据只是和数据有关的session编号 。浏览器存储cookie 再次发送请求时浏览器将未过期的cookie发送给服务器,服务器根据session编号找session数据验证 根据身份信息响应相应内容

cookie和session优缺点

cookie:优点是节省服务器空间缺点是不安全不能存储敏感信息

session:优点是安全缺点是需要占用服务器空间

有局限性需要用到cookie 但cookie不支持跨域访问需要很多额外的配置才能实现跨域session认证

前端请求后端接口 不涉及跨域推荐使用session认证

涉及跨域请求不推荐使用session 推荐使用jwt认证机制

 jwt

是目前比较流行的跨域认证解决方案

浏览器向服务器发送登录请求服务器验证数据 将数据加密之后生成token字符串将token给客户端浏览器把token保存到本地 客户端再次请求时通过请求头的Authorization字段将token发送给服务器 服务器解密还原成用户信息 验证

响应相应身份内容

组成部分:三部分 Header.Payload.Signature

.是分隔

用户信息在Payload

Header.Signature是安全性相关的部分 为了保证token的安全性

使用方式

客户端收到服务器返回的JWT之后会存储到loacalstorage或sessionStorage中此后客户端向服务器发送请求都要带上JWT字符串 进行身份验证

把JWT放在http响应头的Authorization字段中

Authorization:Bearer

安装JWT相关包

npm i jsonwebtoken express-jwt

jsonwebtoken 用来加密

express-jwt 用来解密

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992483.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号