Files
kami_boss/internal/service/token.go
danial 8e033b540e feat(config): 重构密钥配置获取逻辑
- 移除 GetRedisConfig 函数- 修改 GetSecret 函数通过 HTTP 请求获取 AES 加密参数- 添加 json 和 github.com/go-resty/resty/v2依赖
- 升级多个依赖包版本,包括 lancet、excelize、go-deepcopy 等
- 更新 go.mod 和 go.sum 文件中的依赖版本
- 优化 token 服务中密钥获取错误处理逻辑
2025-11-13 14:33:29 +08:00

46 lines
934 B
Go

package service
import (
"boss/internal/config"
"boss/internal/utils"
"context"
"encoding/base64"
"encoding/json"
"sync"
"time"
)
type TokenService struct {
}
func (t *TokenService) GetToken(ctx context.Context, userId string) (token string) {
tokenStruct := struct {
CurrentTime int64 `json:"currentTime"`
UserId string `json:"userId"`
UserAuth string `json:"userAuth"`
}{
CurrentTime: time.Now().Unix(),
UserAuth: "admin",
UserId: userId,
}
tokenBytes, _ := json.Marshal(tokenStruct)
secretCfg, err := config.GetSecret()
if err != nil {
return ""
}
tokenB, err := utils.AesCBCEncrypt(tokenBytes, []byte(secretCfg.Key), []byte(secretCfg.IV))
if err != nil {
return ""
}
return base64.URLEncoding.EncodeToString(tokenB)
}
var tokenService *TokenService
func NewTokenService() *TokenService {
sync.OnceFunc(func() {
tokenService = &TokenService{}
})()
return tokenService
}