| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package middleware
- import (
- "f1-game/internal/code"
- "f1-game/internal/data"
- "f1-game/internal/extend/token"
- nameKey "f1-game/internal/name/key"
- cstring "github.com/cherry-game/cherry/extend/string"
- clog "github.com/cherry-game/cherry/logger"
- cgin "github.com/cherry-game/components/gin"
- "github.com/gin-gonic/gin"
- )
- // ValidateToken 中间件
- func ValidateToken() cgin.GinHandlerFunc {
- return func(c *cgin.Context) {
- base64Token := c.GetString(nameKey.Token, "")
- decodeToken, ok := token.DecodeToken(base64Token)
- if !ok {
- c.Abort()
- clog.Warnf("decode token error. [url = %s] [token = %s]", c.Request.URL, base64Token)
- code.JSONResult(c, code.AccountTokenValidateError)
- return
- }
- sdkRow := data.SDK.Get(decodeToken.PID)
- if sdkRow == nil {
- clog.Warnf("pid not found . [url = %s] [token = %s]", c.Request.URL, base64Token)
- code.JSONResult(c, code.AccountTokenValidateError)
- return
- }
- c.Params = append(c.Params, gin.Param{
- Key: nameKey.SDKID,
- Value: cstring.ToString(sdkRow.SdkID),
- })
- c.Params = append(c.Params, gin.Param{
- Key: nameKey.PID,
- Value: cstring.ToString(decodeToken.PID),
- })
- c.Params = append(c.Params, gin.Param{
- Key: nameKey.OpenID,
- Value: decodeToken.OpenID,
- })
- c.Next()
- }
- }
|