uuid临时游客身份——>在请求拦截器中带+本地存储(告诉服务器你是谁)
uuid:是通用唯一标识码(Universally Unique
Identifier)的缩写,是一个128比特的数值。客户端在查找一个服务时,只需要在它的服务查找请求中指出与某类服务(或某个特定服务)有关的UUID,如果服务的提供者能将可用的服务与这个UUID相匹配,就返回一个响应。
1.封装产生uuid的模块
import { v4 as uuidv4 } from 'uuid';//创建一个uuid
//要生成一个随机字符串,且每次执行都不能发生变化,游客身份持久存储
export const getUUID = () =>{
//先从本地存储获取uuid(看一下本地存储里面是否有)
let uuid_token = localStorage.getItem('UUIDTOKEN');
//如果没有就生成游客临时身份,并且本地存储一次
if(!uuid_token){
uuid_token = uuidv4();
localStorage.setItem('UUIDTOKEN',uuid_token)
}
//切记有返回值
return uuid_token;
}
2.将uuid保存在仓库中
3.在请求中带着uuid,请求拦截后添加一个字段
requests.interceptors.request.use((config)=>{
//console.log(store)
if(store.state.uuid_token){
//请求头添加一个字段(userTempId):字段名和后台商量好
config.headers.userTempId = store.state.uuid_token
}
nprogress.start()//进度条开始
return config;
})
4.可以看到所有请求都携带着这个uuid
5.可以看到本地存储中也保存了这个uuid
缓存使用方法
1.localStorage.setItem('TOKEN',token)
//存储token到本地缓存中,命名为TOKEN
2.localStorage.getItem('token')
//获取本地缓存中的token
3.localStorage.removeItem('TOKEN')
//清除缓存TOKEN