[TOC]
>[success] # cookie 和 token 的区别
**cookie** 和 **token** 都是用来做 **身份认证** 的,只不过是方式不同。
>[success] ## cookie
**cookie** 是 **用户在浏览器端登录成功** 后, **服务端** 通过在 **response 响应头** 中加入 **set-Cookie** 向 **浏览器** 中添加 **cookie** ,在后续该网址 **请求接口时** ,都 **会在每个请求头中自动携带该 Cookie** 。登录成功后,后端会生成一个 **Session对象** ,这个对象可以理解成就像 js 对象一样,例如:
~~~
// 该对象就是 Session对象
{
SessionId: {
// 用户信息
userInfo: ''
}
}
~~~
**Session对象** 中会 **存储有关该用户的信息** ,我们将 **SessionId** 作为 **cookie** 返回给用户,用户每次请求时 **cookie** 中会携带 **SessionId** ,我们通过 **SessionId** 可以到 **redis(内存数据库,通常Session对象会存到这里 )** 中根据 **SessionId** 去查找该 **Session对象** 中的用户信息,然后去进行 **校验用户信息以及 Cookie 是否过期来进行校验是否有权限** 等。
>[success] ## token
**用户在浏览器端登录成功** 后, **服务端** 会生成一个名为 **token** 的 **加密字符串** ,这个 **加密字符串串** 是通过 **JWT** 生成的,其中包含 **用户id**以及 **token过期时间**, 然后将其通过在 **响应体** 中返回,前端接收到了 **token** 后,将其存储到本地的 **LocalStorage或SessionStorage** 中,后续在每次请求时,在前端的**axios 请求拦截器** 中从 **LocalStorage或SessionStorage** 中取出,然后放到 **请求头** 中,这样在每次请求时**请求头** 中就会携带 **token** 了,然后 **服务端接收到了token后,会去通过密钥校验token的合法性,如果校验成功,就从token中获取用户id等信息,然后根据用户id去数据库查询用户名、角色信息等,根据业务需求做进一步的校验或控制** , 如果 **Token过期或不合法,服务器拒绝请求,客户端需要重新登录获取新的Token。**
- vue复选框逻辑
- get请求给后台传数组
- 提交表单时传值参数处理方案
- Element ui上传图片功能
- async和await的使用
- 时间戳转换
- 日期格式转换时间戳
- 时间戳转换日期格式
- 对深拷贝的认知总结
- vue-右键菜单功能
- textarea中换行、回车、空格的识别与处理
- element ui表格合并
- 合并行(上下行)
- 双层for循环
- 数组去重
- 瀑布流
- 前端多条件筛选
- 闭包的理解
- 改变this指向
- vue单选框逻辑
- 对象数组根据某个属性来进行排序
- vscode插件整理
- 对象数组多条件去重
- Blob类型数据转换Json数据类型
- Element ui做批量上传功能
- 前端cookie和后端cookie
- 强制转换https协议
- 给事件传额外参数
- 树形结构数据处理
- 查找所有父级数据
- 根据id筛选单条数据
- 动态引入阿里图标库
- 四舍五入
- 封装一个Promise.allSettled方法
- 判断输入框内是否有emoji表情
- element-ui的popover组件位置偏移
- formData上传文件时,携带【数组对象参数】
- 前端解压压缩包(zip)解压后上传解压的文件
- element ui表格列相同解决办法
- elementUI,table复选框多选,翻页/切换条数时保持选中状态
- cookie 和 token 的区别