From 7ca89d8b547c1587b17ca44a542f6cb2c14a266d Mon Sep 17 00:00:00 2001 From: RockYang Date: Sun, 24 Dec 2023 22:12:12 +0800 Subject: [PATCH] feat: function CRUD operation is ready --- api/core/config.go | 13 ++++++----- api/core/types/config.go | 31 +++++++++++++-------------- api/handler/admin/function_handler.go | 19 ++++++++++++++++ api/main.go | 1 + web/src/views/admin/ApiKey.vue | 2 +- web/src/views/admin/ChatModel.vue | 2 +- web/src/views/admin/Functions.vue | 29 ++++++++++++++++++++++--- web/src/views/admin/Product.vue | 2 +- web/src/views/admin/RoleList.vue | 2 +- 9 files changed, 71 insertions(+), 30 deletions(-) diff --git a/api/core/config.go b/api/core/config.go index 5e02c821..bf8a1e63 100644 --- a/api/core/config.go +++ b/api/core/config.go @@ -14,13 +14,12 @@ var logger = logger2.GetLogger() func NewDefaultConfig() *types.AppConfig { return &types.AppConfig{ - Listen: "0.0.0.0:5678", - ProxyURL: "", - Manager: types.Manager{Username: "admin", Password: "admin123"}, - StaticDir: "./static", - StaticUrl: "http://localhost/5678/static", - Redis: types.RedisConfig{Host: "localhost", Port: 6379, Password: ""}, - AesEncryptKey: utils.RandString(24), + Listen: "0.0.0.0:5678", + ProxyURL: "", + Manager: types.Manager{Username: "admin", Password: "admin123"}, + StaticDir: "./static", + StaticUrl: "http://localhost/5678/static", + Redis: types.RedisConfig{Host: "localhost", Port: 6379, Password: ""}, Session: types.Session{ SecretKey: utils.RandString(64), MaxAge: 86400, diff --git a/api/core/types/config.go b/api/core/types/config.go index 584b0bc9..2cc6d738 100644 --- a/api/core/types/config.go +++ b/api/core/types/config.go @@ -5,22 +5,21 @@ import ( ) type AppConfig struct { - Path string `toml:"-"` - Listen string - Session Session - ProxyURL string - MysqlDns string // mysql 连接地址 - Manager Manager // 后台管理员账户信息 - StaticDir string // 静态资源目录 - StaticUrl string // 静态资源 URL - Redis RedisConfig // redis 连接信息 - ApiConfig ChatPlusApiConfig // ChatPlus API authorization configs - AesEncryptKey string - SmsConfig AliYunSmsConfig // AliYun send message service config - OSS OSSConfig // OSS config - MjConfigs []MidJourneyConfig // mj AI draw service pool - WeChatBot bool // 是否启用微信机器人 - SdConfigs []StableDiffusionConfig // sd AI draw service pool + Path string `toml:"-"` + Listen string + Session Session + ProxyURL string + MysqlDns string // mysql 连接地址 + Manager Manager // 后台管理员账户信息 + StaticDir string // 静态资源目录 + StaticUrl string // 静态资源 URL + Redis RedisConfig // redis 连接信息 + ApiConfig ChatPlusApiConfig // ChatPlus API authorization configs + SmsConfig AliYunSmsConfig // AliYun send message service config + OSS OSSConfig // OSS config + MjConfigs []MidJourneyConfig // mj AI draw service pool + WeChatBot bool // 是否启用微信机器人 + SdConfigs []StableDiffusionConfig // sd AI draw service pool XXLConfig XXLConfig AlipayConfig AlipayConfig diff --git a/api/handler/admin/function_handler.go b/api/handler/admin/function_handler.go index 59669b93..26a8805f 100644 --- a/api/handler/admin/function_handler.go +++ b/api/handler/admin/function_handler.go @@ -9,6 +9,8 @@ import ( "chatplus/utils" "chatplus/utils/resp" + "github.com/golang-jwt/jwt/v5" + "github.com/gin-gonic/gin" "gorm.io/gorm" ) @@ -104,3 +106,20 @@ func (h *FunctionHandler) Remove(c *gin.Context) { } resp.SUCCESS(c) } + +// GenToken generate function api access token +func (h *FunctionHandler) GenToken(c *gin.Context) { + // 创建 token + token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ + "user_id": 0, + "expired": 0, + }) + tokenString, err := token.SignedString([]byte(h.App.Config.Session.SecretKey)) + if err != nil { + logger.Error("error with generate token", err) + resp.ERROR(c) + return + } + + resp.SUCCESS(c, tokenString) +} diff --git a/api/main.go b/api/main.go index 600cb35d..721f461d 100644 --- a/api/main.go +++ b/api/main.go @@ -355,6 +355,7 @@ func main() { group.POST("set", h.Set) group.GET("list", h.List) group.GET("remove", h.Remove) + group.GET("token", h.GenToken) }), fx.Provide(handler.NewTestHandler), diff --git a/web/src/views/admin/ApiKey.vue b/web/src/views/admin/ApiKey.vue index 46fb8143..117ad7ce 100644 --- a/web/src/views/admin/ApiKey.vue +++ b/web/src/views/admin/ApiKey.vue @@ -32,7 +32,7 @@