您现在的位置是:首页 >技术交流 >Vue电商项目--uuid游客身份获取购物车数据网站首页技术交流

Vue电商项目--uuid游客身份获取购物车数据

Moon.js 2024-08-27 00:01:03
简介Vue电商项目--uuid游客身份获取购物车数据

uuid游客身份获取购物车数据

获取购物车列表

请求地址

/api/cart/cartList

请求方式

GET

参数类型

参数名称

类型

是否必选

描述

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": [

        {

            "id": 61,

            "userId": "2",

            "skuId": 4,

            "cartPrice": 5999,

            "skuNum": 4,

            "imgUrl": "http://192.168.200.128:8080xxx.jpg",

            "skuName": "Apple iPhone 11 (A2223) ",

            "isChecked": 1,

            "skuPrice": 5999

        },

        {

            "id": 62,

            "userId": "2",

            "skuId": 2,

            "cartPrice": 5499,

            "skuNum": 1,

            "imgUrl": "http://192.168.200.128:8080/yyyy.jpg",

            "skuName": "Apple iPhone 11 (A2223) 64GB 红色",

            "isChecked": 0,

            "skuPrice": 5499

        }

    ],

    "ok": true

}

  vuex配发三步走,我们这里测试一下能不能拿到数据

 我们这拿不到数据是因为,服务器不知道你的身份,它如何拿你的详细的信息呢?我们需要告诉服务器,我们的身份是谁,比如(游客) 

 这里我们用到的技术就是uuid,它可以自动帮我们生成一个唯一标识

发现:发请求的时候,获取不到你购物车里面数据,因为服务器不知道你是谁?

使用uuid临时游客身份

而我们游客身份只需要登录一次就可以了。因此我们的思路应该是持久化存储

 这里我们封装一个模块,放到utis l里面,然后导出使用这个方法就可以了 

 要生成一个随机字符串,且每次执行不能发生变化,游客身份持久化存储. 先从本地存储中获取uuid,看是否本地存储里面有,如果有,生成游客临时身份,本地存储一次

 但是我们现在只能保证在仓库中。而不能发送到服务器

那么我们就把uuid提交到服务器中

请求头添加一个字段(userTempId):需要跟后台先沟通好 

uuid代码:

import { v4 as uuidv4 } from '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
}
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。