From 4200fc48323a4084e687c209f3fe37593c8d7cc1 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sun, 10 Aug 2025 02:11:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E9=80=80?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yaml | 17 +++++++++++++ controllers/user/userLogout.go | 26 +++++++++++++++++++ go.mod | 46 ++++++++++++++++++++++++++++++++++ model/usermodel/userdata.go | 17 +++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 config.yaml create mode 100644 controllers/user/userLogout.go create mode 100644 model/usermodel/userdata.go diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..9475799 --- /dev/null +++ b/config.yaml @@ -0,0 +1,17 @@ +port: 9096 +database: + username: "mayiming" + password: "Mydream5654my," + host: "43.142.81.151" + port: 3306 + params: "charset=utf8mb4&parseTime=True&loc=Local" +redis: + host: "localhost" + port: 6379 + username: "default" + password: "" +jwtsecret: "clka1af83af15vhyt8s652avre" +wxid: "wx25d0e3164c042c9d" +wxsecret: "dd822f42589a373a3387e5778450f767" + + diff --git a/controllers/user/userLogout.go b/controllers/user/userLogout.go new file mode 100644 index 0000000..78f35dd --- /dev/null +++ b/controllers/user/userLogout.go @@ -0,0 +1,26 @@ +package user + +import ( + "fmt" + "github.com/gin-gonic/gin" + "toutoukan/init/redisInit" + "toutoukan/utill" +) + +// 登出功能(从Redis删除令牌) +func LogoutHandler(c *gin.Context) { + tokenString := utill.ExtractTokenFromHeader(c) + if tokenString == "" { + c.JSON(400, gin.H{"error": "令牌不存在", "code": "10038"}) + return + } + + redisKey := fmt.Sprintf("jwt:%s", tokenString) + err := redisInit.RedisClient.Del(redisInit.Ctx, redisKey).Err() + if err != nil { + c.JSON(500, gin.H{"error": "登出失败", "code": "10039"}) + return + } + + c.JSON(200, gin.H{"code": "20002", "message": "登出成功"}) +} diff --git a/go.mod b/go.mod index ac19d27..7946cc2 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,49 @@ module toutoukan go 1.23.1 + +require ( + filippo.io/edwards25519 v1.1.0 // indirect + github.com/bytedance/sonic v1.14.0 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/gabriel-vasile/mimetype v1.4.9 // indirect + github.com/gin-contrib/sse v1.1.0 // indirect + github.com/gin-gonic/gin v1.10.1 // indirect + github.com/go-ini/ini v1.67.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.27.0 // indirect + github.com/go-redis/redis/v8 v8.11.5 // indirect + github.com/go-sql-driver/mysql v1.9.3 // indirect + github.com/goccy/go-json v0.10.5 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/minio/crc64nvme v1.0.2 // indirect + github.com/minio/md5-simd v1.1.2 // indirect + github.com/minio/minio-go/v7 v7.0.95 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/philhofer/fwd v1.2.0 // indirect + github.com/rs/xid v1.6.0 // indirect + github.com/tinylib/msgp v1.3.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.3.0 // indirect + golang.org/x/arch v0.20.0 // indirect + golang.org/x/crypto v0.41.0 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/text v0.28.0 // indirect + google.golang.org/protobuf v1.36.7 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/model/usermodel/userdata.go b/model/usermodel/userdata.go new file mode 100644 index 0000000..e091ebc --- /dev/null +++ b/model/usermodel/userdata.go @@ -0,0 +1,17 @@ +package usermodel + +import "time" + +type UserData struct { + Uid string + Username string + Password string + Email string + Telephone string + Avatar_url string + Gender string + Bio string + Birth_date time.Time + CreatedAt time.Time + UpdatedAt time.Time +}