refactor(uuid): 优化 UUID生成逻辑

- 移除多个地方对 uuid 包的导入,统一使用 utils.GenerateRandomUUID() 方法生成 UUID
- 在 utils/tools.go 中添加 GenerateRandomUUID 函数,使用 gmlock 实现线程安全的 UUID 生成
- 更新多个文件中的 UUID 生成逻辑,使用新的 utils.GenerateRandomUUID 方法
- 优化部分代码格式和结构,提高可读性
This commit is contained in:
danial
2025-02-23 12:36:10 +08:00
parent 2454fee25a
commit 79a7885000
21 changed files with 269 additions and 276 deletions

View File

@@ -5,11 +5,11 @@ gfcli:
- my.image.pub/my-app
gen:
dao:
# - link: mysql:root:123456@tcp(127.0.0.1:3306)/kami_v2
# descriptionTag: true
# noModelComment: true
# prefix: v2
# path: ./internal/systemV2
# - link: mysql:root:123456@tcp(127.0.0.1:3306)/kami_v2
# descriptionTag: true
# noModelComment: true
# prefix: v2
# path: ./internal/systemV2
- link: mysql:root:123456@tcp(127.0.0.1:3306)/kami
tables: "sys_user_deductions,sys_user_config_channel,recharge_t_mall_shop_history,recharge_t_mall_order_fake,
restrict_ip_record,card_apple_hidden_settings_recharge_info,sys_config_dict,card_apple_hidden_settings,recharge_t_mall_order_history,

View File

@@ -31,7 +31,7 @@ func (c *ControllerV1) RechargeSubmit(ctx context.Context, req *v1.RechargeSubmi
err = errHandler.WrapError(ctx, gcode.CodeOperationFailed, gerror.New("订单正在处理,请勿重复推送"), "订单正在处理,请勿重复推送")
}
//写入缓存
_ = cache.NewCache().Set(ctx, cache.PrefixAppleDuplicatedOrder.Key(req.MerchantId), req.MerchantId, gtime.S)
_ = cache.NewCache().Set(ctx, cache.PrefixAppleDuplicatedOrder.Key(req.MerchantId), req.MerchantId, gtime.S*10)
})
if err != nil {
return

View File

@@ -2,8 +2,8 @@ package card_info_t_mall_game
import (
"context"
"github.com/duke-git/lancet/v2/random"
"github.com/gogf/gf/v2/os/glog"
"kami/utility/utils"
"testing"
)
@@ -32,6 +32,6 @@ func Test_handleBuyerConfirmWithOutJudgementMessage(t *testing.T) {
// item = gstr.TrimAll(item)
//})
//glog.Info(context.Background(), "结果", accountList, err)
id, _ := random.UUIdV4()
id := utils.GenerateRandomUUID()
glog.Info(context.Background(), id)
}

View File

@@ -2,7 +2,6 @@ package card_apple_account
import (
"context"
"github.com/gogf/gf/v2/text/gstr"
"github.com/gogf/gf/v2/util/gconv"
"github.com/shopspring/decimal"
"kami/api/commonApi"
@@ -10,8 +9,6 @@ import (
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/os/gtime"
"github.com/google/uuid"
"kami/internal/consts"
"kami/internal/dao"
"kami/internal/model"
@@ -51,7 +48,7 @@ func (a *sAppleAccount) Add(ctx context.Context, data *model.AppleAccountRecordI
if tx != nil {
m = m.TX(tx)
}
doData.Id = gstr.Replace(uuid.New().String(), "-", "")
doData.Id = utils.GenerateRandomUUID()
_, err = m.Insert(doData)
if err != nil {
return err

View File

@@ -8,7 +8,6 @@ import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/text/gstr"
"github.com/gogf/gf/v2/util/gconv"
"github.com/google/uuid"
"kami/utility/cache"
"slices"
"sync"
@@ -158,7 +157,7 @@ func (a *sAppleAccount) GetAccordingAccountV2(ctx context.Context, machineId str
AccountId: data.Id,
})
}
_ = cache.NewCache().Set(ctx, cache.PrefixRedeemAppleAccountLimitedType.Key(data.Account+":"+uuid.New().String()), time.Now().Unix(), gtime.S*90)
_ = cache.NewCache().Set(ctx, cache.PrefixRedeemAppleAccountLimitedType.Key(data.Account+":"+utils.GenerateRandomUUID()), time.Now().Unix(), gtime.S*90)
return
}
@@ -271,7 +270,7 @@ func (a *sAppleAccount) GetAccordingAccountV3(ctx context.Context, machineId str
})
}
//账户过期时间
_ = cache.NewCache().Set(ctx, cache.PrefixRedeemAppleAccountLimitedType.Key(data.Account+":"+uuid.New().String()), time.Now().Unix(), gtime.S*90)
_ = cache.NewCache().Set(ctx, cache.PrefixRedeemAppleAccountLimitedType.Key(data.Account+":"+utils.GenerateRandomUUID()), time.Now().Unix(), gtime.S*90)
return
}

View File

@@ -3,9 +3,7 @@ package card_t_mall_order
import (
"context"
"fmt"
"github.com/duke-git/lancet/v2/random"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/text/gstr"
"kami/internal/consts"
"kami/internal/dao"
"kami/internal/model"
@@ -13,6 +11,7 @@ import (
"kami/internal/model/entity"
"kami/internal/service"
"kami/utility/config"
"kami/utility/utils"
)
func init() {
@@ -60,8 +59,7 @@ func (h *sRechargeTMallGameOrder) List(ctx context.Context, input *model.Recharg
// Create 创建订单
func (h *sRechargeTMallGameOrder) Create(ctx context.Context, input *model.RechargeTMallGameOrderCreateInput) (orderNo string, err error) {
orderNo, _ = random.UUIdV4()
orderNo = gstr.Replace(orderNo, "-", "")
orderNo = utils.GenerateRandomUUID()
_, err = dao.V1RechargeTMallOrder.Ctx(ctx).DB(config.GetDatabaseV1()).Insert(do.V1RechargeTMallOrder{
OrderNo: orderNo,
AccountId: input.AccountId,

View File

@@ -3,7 +3,6 @@ package restriction
import (
"context"
"github.com/duke-git/lancet/v2/pointer"
"github.com/duke-git/lancet/v2/random"
"github.com/duke-git/lancet/v2/slice"
"github.com/gogf/gf/v2/database/gdb"
"kami/internal/dao"
@@ -28,7 +27,7 @@ func (i *sRestriction) SaveDeviceInfo(ctx context.Context, input *model.Restrict
return err2
}
//保存每次的访问信息
newId, _ := random.UUIdV4()
newId := utils.GenerateRandomUUID()
//保存远程IP
for _, ip := range input.IPs {
if err2 = i.SaveDeviceIPRelation(ctx, ip, false, accessId, newId, tx); err2 != nil {

View File

@@ -15,7 +15,7 @@ spec:
app: template-single
spec:
containers:
- name : main
- name: main
image: template-single
imagePullPolicy: Always

View File

@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- deployment.yaml
- service.yaml

View File

@@ -4,9 +4,9 @@ metadata:
name: template-single
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8000
- port: 80
protocol: TCP
targetPort: 8000
selector:
app: template-single

View File

@@ -6,5 +6,5 @@ spec:
template:
spec:
containers:
- name : main
- name: main
image: template-single:develop

View File

@@ -2,11 +2,11 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
- configmap.yaml
- ../../base
- configmap.yaml
patchesStrategicMerge:
- deployment.yaml
- deployment.yaml
namespace: default

View File

@@ -4,100 +4,100 @@
# 运行时候后面加入 -c 选项-c后可设置安装多个镜像
while getopts "c:" opt; do
case $opt in
c)
# 根据编号跟具体镜像名称匹配
case $OPTARG in
1)
repository="kami_frontend"
;;
2)
repository="kami_backend"
;;
3)
repository="kami_boss"
;;
4)
repository="kami_merchant"
;;
5)
repository="kami_shop"
;;
6)
repository="kami_gateway"
;;
7)
repository="kami_agent"
;;
*)
echo "Invalid option: -$OPTARG" >&2
help
exit 1
;;
esac
install repository
;;
\?)
echo "Invalid option: -$OPTARG" >&2
help
exit 1
;;
case $opt in
c)
# 根据编号跟具体镜像名称匹配
case $OPTARG in
1)
repository="kami_frontend"
;;
2)
repository="kami_backend"
;;
3)
repository="kami_boss"
;;
4)
repository="kami_merchant"
;;
5)
repository="kami_shop"
;;
6)
repository="kami_gateway"
;;
7)
repository="kami_agent"
;;
*)
echo "Invalid option: -$OPTARG" >&2
help
exit 1
;;
esac
install repository
;;
\?)
echo "Invalid option: -$OPTARG" >&2
help
exit 1
;;
esac
done
help() {
echo 1. kami_frontend
echo 2. kami_backend
echo 3. kami_boss
echo 4. kami_merchant
echo 5. kami_shop
echo 6. kami_gateway
echo 7. kami_agent
echo 1. kami_frontend
echo 2. kami_backend
echo 3. kami_boss
echo 4. kami_merchant
echo 5. kami_shop
echo 6. kami_gateway
echo 7. kami_agent
}
install() {
$repository = $1
$repository = $1
# 如果当前文件夹不存在拉取资源
if [ ! -d $repository ]; then
echo "克隆代码..."
git clone git@121.37.253.228:sunxiaolong/$repository.git
fi
# 如果当前文件夹不存在拉取资源
if [ ! -d $repository ]; then
echo "克隆代码..."
git clone git@121.37.253.228:sunxiaolong/$repository.git
fi
cd $repository
git checkout master
git pull
cd $repository
git checkout master
git pull
# 如果当前容器存在则停止并删除
if [ "$(docker ps -a | grep $repository)" ]; then
echo "停止并删除容器..." $repository
docker stop $repository && docker rm $repository
fi
# 如果当前容器存在则停止并删除
if [ "$(docker ps -a | grep $repository)" ]; then
echo "停止并删除容器..." $repository
docker stop $repository && docker rm $repository
fi
# 关掉docker中所有其他的容器
echo "关掉docker中所有其他的容器..."
# shellcheck disable=SC2046
docker stop $(docker ps -a -q)
# 构建并启动docker容器
# 关掉docker中所有其他的容器
echo "关掉docker中所有其他的容器..."
# shellcheck disable=SC2046
docker stop $(docker ps -a -q)
# 构建并启动docker容器
echo "构建并启动docker容器..."
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./deploy/docker-compose.yml up -d --build
elif [ $repository == "kami_backend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./manifest/docker/docker-compose.yml up -d --build
else
docker compose -f docker-compose.yaml up -d --build
# 开启docker所有的容器
fi
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./deploy/docker-compose.yml up -d --build
elif [ $repository == "kami_backend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./manifest/docker/docker-compose.yml up -d --build
else
docker compose -f docker-compose.yaml up -d --build
# 开启docker所有的容器
fi
if [ -d "$repository" ]; then
echo "删除本地代码..."
rm -rf $repository
fi
# 查找悬空的无标签的镜像
if [ -d "$repository" ]; then
echo "删除本地代码..."
rm -rf $repository
fi
# 查找悬空的无标签的镜像
}
echo
@@ -109,8 +109,8 @@ cd ..
# 暂停10s
for i in {10..1}; do
echo -ne "暂时等待..$i \r"
sleep 1
echo -ne "暂时等待..$i \r"
sleep 1
done
# 重启以kami_开头的所有容器
@@ -122,12 +122,12 @@ docker restart $(docker ps -a | grep kami_ | awk '{print $1}')
# shellcheck disable=SC2046
# 如果有悬空镜像就删除
if [ "$(docker images -f "dangling=true" -q)" ]; then
echo "删除悬空的镜像..."
docker rmi $(docker images -f "dangling=true" -q)
echo "删除悬空的镜像..."
docker rmi $(docker images -f "dangling=true" -q)
fi
# 自我删除
if [ -f "./install.sh" ]; then
echo "自我删除..."
rm -rf ./install.sh
echo "自我删除..."
rm -rf ./install.sh
fi

View File

@@ -15,57 +15,57 @@ echo "7. kami_agent"
read -p "请选择对应的应用:" choice
# 选择下选项
if [ "$choice" -lt 1 ] || [ "$choice" -gt 7 ]; then
echo "无效的选择"
exit 1
echo "无效的选择"
exit 1
fi
repository=""
case $choice in
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
esac
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
fi
# 如果当前文件夹不存在拉取资源
@@ -81,7 +81,7 @@ git pull
# 如果当前容器存在则停止并删除并且当前选择打包的是kami_gateway
# shellcheck disable=SC2143
if [ "$(docker ps -a | grep $repository)" ] && [ $repository == "kami_gateway" ]; then
if [ "$(docker ps -a | grep $repository)" ] && [ $repository == "kami_gateway" ]; then
echo "停止并删除容器..." $repository
docker stop $repository && docker rm $repository
fi
@@ -94,11 +94,11 @@ if [ $repository == "kami_gateway" ]; then
# 构建并启动docker容器
fi
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./deploy/docker-compose.yml up -d --build
elif [ $repository == "kami_backend" ]; then
echo "构建并启动docker容器..."
echo "构建并启动docker容器..."
docker compose -f ./manifest/docker/docker-compose.yml up -d --build
else
docker compose -f docker-compose.yaml up -d --build
@@ -127,4 +127,4 @@ fi
if [ "$(docker images -f "dangling=true" -q)" ]; then
echo "删除悬空的镜像..."
docker rmi $(docker images -f "dangling=true" -q)
fi
fi

View File

@@ -15,57 +15,57 @@ echo "7. kami_agent"
read -p "请选择对应的应用:" choice
# 选择下选项
if [ "$choice" -lt 1 ] || [ "$choice" -gt 7 ]; then
echo "无效的选择"
exit 1
echo "无效的选择"
exit 1
fi
repository=""
case $choice in
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
esac
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
fi
# 如果当前文件夹不存在拉取资源
@@ -79,16 +79,16 @@ git checkout master
git pull
# 如果当前容器存在则停止并删除
if [ "$(docker ps -a | grep $repository)" ]; then
if [ "$(docker ps -a | grep $repository)" ]; then
echo "停止并删除容器..." $repository
docker stop $repository && docker rm $repository
fi
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./deploy/docker-compose-test.yml up -d --build
elif [ $repository == "kami_backend" ]; then
echo "构建并启动docker容器..."
echo "构建并启动docker容器..."
docker compose -f ./manifest/docker/docker-compose-test.yml up -d --build
else
# 关掉docker中所有其他的容器
@@ -114,4 +114,4 @@ else
echo "重启以kami_开头的所有容器..."
# shellcheck disable=SC2046
docker restart $(docker ps -a | grep kami_ | awk '{print $1}')
fi
fi

View File

@@ -15,57 +15,57 @@ echo "7. kami_agent"
read -p "请选择对应的应用:" choice
# 选择下选项
if [ "$choice" -lt 1 ] || [ "$choice" -gt 7 ]; then
echo "无效的选择"
exit 1
echo "无效的选择"
exit 1
fi
repository=""
case $choice in
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
1)
echo "正在打包kami_frontend..."
# 在这里执行与选项1相关的操作
repository="kami_frontend"
;;
2)
echo "正在打包kami_backend..."
# 在这里执行与选项2相关的操作
repository="kami_backend"
;;
3)
echo "正在打包kami_boss..."
# 在这里执行与选项3相关的操作
repository="kami_boss"
;;
4)
echo "正在打包kami_merchant..."
# 在这里执行与选项4相关的操作
repository="kami_merchant"
;;
5)
echo "正在打包kami_shop..."
# 在这里执行与选项5相关的操作
repository="kami_shop"
;;
6)
echo "正在打包kami_gateway..."
# 在这里执行与选项6相关的操作
repository="kami_gateway"
;;
7)
echo "正在打包kami_agent..."
# 在这里执行与选项7相关的操作
repository="kami_agent"
;;
*)
echo "选项不正确..."
exit 0
;;
esac
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
if [ -z "$repository" ]; then
echo "未选择软件..."
exit 0
fi
# 如果当前文件夹不存在拉取资源
@@ -80,7 +80,7 @@ git checkout master
git pull
# 如果当前容器存在则停止并删除
if [ "$(docker ps -a | grep $repository)" ]; then
if [ "$(docker ps -a | grep $repository)" ]; then
echo "停止并删除容器..." $repository
docker stop $repository && docker rm $repository
fi
@@ -92,11 +92,11 @@ docker stop $(docker ps -a -q)
# 构建并启动docker容器
echo "构建并启动docker容器..."
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
if [ $repository == "kami_frontend" ]; then
echo "构建并启动docker容器..."
docker compose -f ./deploy/docker-compose.yml up -d --build
elif [ $repository == "kami_backend" ]; then
echo "构建并启动docker容器..."
echo "构建并启动docker容器..."
docker compose -f ./manifest/docker/docker-compose.yml up -d --build
else
docker compose -f docker-compose.yaml up -d --build
@@ -119,7 +119,6 @@ echo "重启以kami_开头的所有容器..."
# shellcheck disable=SC2046
docker restart $(docker ps -a | grep kami_ | awk '{print $1}')
# 删除本地代码
# shellcheck disable=SC2103
cd ..
@@ -141,4 +140,4 @@ fi
if [ -f "./install.sh" ]; then
echo "自我删除..."
rm -rf ./install.sh
fi
fi

View File

@@ -12,8 +12,8 @@ shift
# shellcheck disable=SC2124
cmd="$@"
until nc -z "$host" "$port"; do
>&2 echo "Waiting for $host:$port to be available..."
echo >&2 "Waiting for $host:$port to be available..."
sleep 1
done
>&2 echo "$host:$port is available!"
exec "$cmd"
echo >&2 "$host:$port is available!"
exec "$cmd"

View File

@@ -3,8 +3,8 @@ package limiter
import (
"context"
"github.com/gogf/gf/v2/os/gmutex"
"github.com/google/uuid"
"kami/utility/cache"
"kami/utility/utils"
"sync"
"time"
)
@@ -20,7 +20,7 @@ func (l *SimpleKeyLimiter) Allow(ctx context.Context, value string, cap int, tim
if num > cap {
return
}
_ = cache.NewCache().Set(ctx, value+uuid.New().String(), 1, timeout)
_ = cache.NewCache().Set(ctx, value+utils.GenerateRandomUUID(), 1, timeout)
ok = true
})
return

View File

@@ -55,7 +55,6 @@ func Init(serviceName, endpoint, path string) (func(ctx context.Context), error)
resource.WithTelemetrySDK(),
resource.WithHost(),
resource.WithAttributes(
// The name of the service displayed on the traceback end。
semconv.ServiceNameKey.String(serviceName),
semconv.HostNameKey.String(hostIP),
attribute.String(tracerHostnameTagKey, hostIP),

View File

@@ -4,12 +4,11 @@ import (
"context"
"errors"
"fmt"
"kami/utility/utils"
"time"
"github.com/gogf/gf/v2/os/glog"
"github.com/golang-jwt/jwt/v5"
"github.com/google/uuid"
"kami/utility/cache"
"kami/utility/config"
)
@@ -52,7 +51,7 @@ func GenerateUserToken(ctx context.Context, userName, userID string) (string, er
Audience: nil,
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Duration(tokenCfg.Timeout) * time.Second)),
IssuedAt: jwt.NewNumericDate(time.Now()),
ID: uuid.New().String(),
ID: utils.GenerateRandomUUID(),
},
}
token, err := t.genToken(ctx)

View File

@@ -3,11 +3,14 @@ package utils
import (
"github.com/gogf/gf/text/gstr"
"github.com/gogf/gf/v2/crypto/gmd5"
"github.com/gogf/gf/v2/os/gmlock"
"github.com/google/uuid"
)
func GenerateRandomUUID() string {
return gstr.Replace(uuid.New().String(), "-", "")
gmlock.Lock("uuid")
defer gmlock.Unlock("uuid")
return gstr.Replace(uuid.NewString(), "-", "")
}
// TmpEncrypt 临时加密