在了解到cookie、session、token的作用后学习token的使用
cookie是随着url将参数发送到后台,安全性最低,并且大小受限,不超过4kb左右,它的数据保存在客户端
session数据保存在服务端,在内存中开辟空间存储数据,session文件名即sessionID保存在cookie内,随cookie传送到服务端后在服务端匹配session文件
token是服务端的一种算法,如果登录成功,服务端就会根据算法生成一个字符串,将字符串传递回客户端。这个字符串就是token,安全性最高
以上都有可能受到CSRF攻击
axios拦截器会在发送请求前先进行处理,将token放进key中保存在请求头中,这个key是前后台约定好的。这样配置好后,每次发送请求的时候,请求头都会带上token传送到后台进行校验。
axios的特点(官网)
- 支持浏览器和node.js
- 支持promise
- 能拦截请求和响应
- 能转换请求和响应数据
- 能取消请求
- 自动转换JSON数据
- 浏览器端支持防止CSRF(跨站请求伪造)
axios修改全局默认配置:eg:
axios.defaults.baseURL = 'https://api.example.com'; axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios配置拦截器:eg:
// 添加一个请求拦截器 axios.interceptors.request.use(function (config) { // Do something before request is sent return config;
//这里经常搭配token使用,将token值配置到tokenkey中,将tokenkey放在请求头中
config.headers['Authorization'] = token;
}, function (error) { // Do something with request error return Promise.reject(error); }); // 添加一个响应拦截器 axios.interceptors.response.use(function (response) { // Do something with response data return response; }, function (error) { // Do something with response error return Promise.reject(error); });