From 84d2953e7b641600779e7aecc80bdd35e96d31d6 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期二, 06 二月 2024 10:13:12 +0800
Subject: [PATCH] 拦截器

---
 middleware/reset_pwd.go |   25 +++++++++++++++++++++++++
 request/jwt.go          |    9 +++++----
 pkg/ecode/code.go       |    1 +
 initialize/router.go    |    2 +-
 4 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/initialize/router.go b/initialize/router.go
index b54d472..d7c2901 100644
--- a/initialize/router.go
+++ b/initialize/router.go
@@ -40,7 +40,7 @@
 	PrivateGroup.GET("previewContract", conApi.PreviewContract)   // 棰勮Contract
 	PrivateGroup.GET("downloadContract", conApi.DownloadContract) // 涓嬭浇Contract
 
-	PrivateGroup.Use(middleware.JWTAuth())
+	PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.VerifyResetPwd())
 	{
 		systemRouter.InitSystemRouter(PrivateGroup) // system鐩稿叧璺敱
 		//exampleRouter.InitFileUploadAndDownloadRouter(PrivateGroup) // 鏂囦欢涓婁紶涓嬭浇鍔熻兘璺敱
diff --git a/middleware/reset_pwd.go b/middleware/reset_pwd.go
new file mode 100644
index 0000000..c398a87
--- /dev/null
+++ b/middleware/reset_pwd.go
@@ -0,0 +1,25 @@
+package middleware
+
+import (
+	"github.com/gin-gonic/gin"
+	"srm/pkg/contextx"
+	"srm/pkg/ecode"
+	"srm/request"
+)
+
+func VerifyResetPwd() gin.HandlerFunc {
+	return func(c *gin.Context) {
+		ctx := new(contextx.Context).SetCtx(c)
+		params, ok := c.Get("claims")
+		if !ok {
+			c.Abort()
+			return
+		}
+		claims := params.(*request.CustomClaims)
+		if !claims.ModifiedPwd {
+			ctx.Fail(ecode.ResetPwd)
+			c.Abort()
+			return
+		}
+	}
+}
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index aa74251..d7fd60b 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -18,4 +18,5 @@
 	JWTEmpty              = 2013 // JWT涓虹┖
 	JWTExpire             = 2014 // JWT杩囨湡
 	JWTParseErr           = 2015 // JWT瑙f瀽澶辫触
+	ResetPwd              = 2036 //璐﹀彿璁剧疆瀵嗙爜
 )
diff --git a/request/jwt.go b/request/jwt.go
index 0e3b5a4..f9a15a7 100644
--- a/request/jwt.go
+++ b/request/jwt.go
@@ -13,8 +13,9 @@
 }
 
 type BaseClaims struct {
-	UserId   string
-	Username string
-	ParentId string
-	UserType constvar.UserType
+	UserId      string
+	Username    string
+	ParentId    string
+	UserType    constvar.UserType
+	ModifiedPwd bool
 }

--
Gitblit v1.8.0