token令牌:
cookie只能再当前域名下生效,导致session无法跨域名共享
token也是用户会话唯一标识
响应主体中有token,响应完成后服务器端会销毁,
再次请求,一定还是需要token的,需要再客户端存储token
存储token:可以存在cookie || localStorage || sessionStorage
这里我们使用sessionStorage存储
//存储session方法 //window.sessionStorage.setIten('key','value') //获取到的res.data是对象格式而sessionStorage只能存储字符串,所以需要用JSON.stringify来转换一下 window.sessionStorage.setIten('token',JSON.stringify(res.data))
在请求头中加字段 Authorization:Bearer token
保持登陆状态 token
token是用于访问需要身份认证的普通接口 有效期两个小时;
需要携带token
axios默认配置项: axios.defaluts
基本路径:
axios.defaluts.baseURL = 'url'
自定义请求头:
axios.defaluts.headers = { Authorization:'Bearer '+JSON.parse(window.sessionStorage.getIten('key')) }
axios提取与封装:
axios.js文件中
const axios from 'axios' const instance = axios.create({ baseURL:'url', headers:{
Authorization:'Bearer '+JSON.parse(window.sessionStorage.getIten('key'))
} }) export defalut instance
这样就基本封装完成了,但是会出现在第一次打开页面时因为还未发送请求所以获取不到token,就会出现报错,这时我们需要使用axios拦截器,下一篇文章我们再来学习axios拦截器。