|
|
@@ -39,12 +39,14 @@ export async function addProductToCartAction(param:AddToCartVariables) {
|
|
|
const responseData = response.data?.createAddProductInCart?.addProductInCart;
|
|
|
/** 兜底代码 start*/
|
|
|
// 游客加购,然后清空购物车,然后刷新页面,然后再加购,然后再刷新页面,购物车会失效,所以添加兜底代码
|
|
|
- // 如果之前的cartToken有效,responseCartId和responseCartToken的值是一样的都是cart id; 否则两者不相等
|
|
|
+ // 如果之前的cartToken有效,responseCartId和responseCartToken的值是一样的都是cart id; 否则两者不相等(最开始是这样,现在不是了,详情见下面注释)
|
|
|
if(responseData) {
|
|
|
+ // 登录状态正常情况下: responseData.id 是字符串(比如:"123"),responseData.cartToken 是null
|
|
|
+ // 游客状态正常情况下:responseData.id 是字符串(比如:"123"),responseData.cartToken 是游客token字符串(比如:203b97c9-3417-476a-95df-293b1478131c)
|
|
|
const responseCartId = responseData.id;
|
|
|
const responseCartToken = responseData.cartToken;
|
|
|
// 游客状态下
|
|
|
- if(!accessToken && responseCartId !== responseCartToken) {
|
|
|
+ if(!accessToken && responseCartToken !== null) {
|
|
|
await setGuestCookie({
|
|
|
guestCartId: responseCartId,
|
|
|
guestToken: responseCartToken,
|
|
|
@@ -52,7 +54,8 @@ export async function addProductToCartAction(param:AddToCartVariables) {
|
|
|
});
|
|
|
}
|
|
|
// 登录状态,但是后端发现用户的accessToken不可用返回一个游客token时,需要走退出登录流程,提示用户过期了需要重新登录
|
|
|
- if(accessToken && responseCartId !== responseCartToken) {
|
|
|
+ // 此时 responseData.id 是字符串(比如:"123"),responseData.cartToken 是游客token字符串(比如:203b97c9-3417-476a-95df-293b1478131c)
|
|
|
+ if(accessToken && responseCartToken !== null) {
|
|
|
const e = new Error("Authorization Bearer token has expired!");
|
|
|
e.name = "UnauthorizedError";
|
|
|
return {
|