欢迎光临散文网 会员登陆 & 注册

session和token检验的区别

2023-09-08 12:16 作者:littersho  | 我要投稿

都是 登陆状态校验的一种实现方式


1)session机制

---页面提交 用户名,密码 登录

---后端验证通过,代表登录成功

---在服务器保存登录用户信息,称之为session数据,并将sessionID响应给客户端

   补充:

    一般通过cookie机制(响应头--header中),进行保存和传递,

    浏览器会自动保存,

    web系统,session最常见

---登陆后的每次请求将携带cookie

服务器提取cookie中的sessionID 和后端保存的信息进行比对


2)token令牌校验机制

---页面提交 用户名,密码 登录

---后端验证通过,代表登录成功

---在服务器不需要保存登录用户信息,只需要生成一个token令牌(特殊的字符串),返回token信息响应给客户端

   补充:

    token的返回,没有规定必须在cookie里面,开发可随意定制,例如返回json

    客户端通常需要自行保存,前端人员 自己想办法

    移动端系统,token最常见

---登陆后的每次请求将携带token

服务器检查token合法性(这个字符串不是随便生成的,有特定的规则算法生成;后端最常见的token技术:JWT (json web token))


核心区别点:

session需要将 登录用户信息  存储在服务器,sessionID就是普通的编号,无特殊意义

token通常有自证功能,服务器一般不需要存储 登录用户信息

token技术相对于session技术而言更加安全:

token有效期短,token采用了签名,加密等安全措施,可以把有效防止token被伪造和修改

session长时间保存在服务器缓存中,容易被攻击盗取,且会影响服务器性能

sessionID存储在cookie中,安全性也低




sessionID是存在服务器内存里,session保存的用户信息存在服务器内存或数据库,
cookie接收保存服务器发来的sessionid,然后每次浏览器发送请求就会带上cookie的数据。
token是服务器加密的用户信息,服务器将token发给浏览器,浏览器用cookie或storage保存cookie。然后浏览器每次发送请求就带上token,服务器将其解密并确认用户登录。


服务器验证是前提。

cookie保存在客户端,服务器不加密不保存;

session保存在服务器,服务器要加密并保存;

token保存在客户端,服务器要加密不保存。

session和token检验的区别的评论 (共 条)

分享到微博请遵守国家法律