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