This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Files
schisandra-cloud-album/middleware/check_client.go
2024-09-04 18:58:13 +08:00

32 lines
802 B
Go

package middleware
import (
ginI18n "github.com/gin-contrib/i18n"
"github.com/gin-gonic/gin"
"schisandra-cloud-album/common/constant"
"schisandra-cloud-album/common/redis"
"schisandra-cloud-album/common/result"
"schisandra-cloud-album/utils"
)
// CheckClientMiddleware 检查客户端请求是否合法
func CheckClientMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
id := c.GetHeader("X-Request-Id")
if id == "" {
result.FailWithMessage(ginI18n.MustGetMessage(c, "AuthVerifyFailed"), c)
c.Abort()
return
}
ip := utils.GetClientIP(c)
clientId := redis.Get(constant.UserLoginClientRedisKey + ip).Val()
if clientId == "" || clientId != id {
result.FailWithMessage(ginI18n.MustGetMessage(c, "AuthVerifyFailed"), c)
c.Abort()
return
}
c.Next()
}
}