middleware.go 843 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package middleware
  2. import (
  3. "MeterService/database/appApi"
  4. "strconv"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func UseCheckApp() gin.HandlerFunc {
  8. return func(c *gin.Context) {
  9. appIdStr := c.Request.Header.Get("AppId")
  10. appSecret := c.Request.Header.Get("Secret")
  11. if appIdStr == "" || appSecret == "" {
  12. c.AbortWithStatusJSON(401, gin.H{
  13. "code": 401,
  14. "msg": "appId和secret不能为空",
  15. })
  16. return
  17. }
  18. appId, err := strconv.Atoi(appIdStr)
  19. if err != nil {
  20. c.AbortWithStatusJSON(401, gin.H{
  21. "code": 401,
  22. "msg": "appId必须为数字",
  23. })
  24. return
  25. }
  26. dbAppApi := appApi.NewAppApiDb()
  27. if !dbAppApi.CheckSecret(&appApi.App{
  28. AppId: appId,
  29. AppSecret: appSecret,
  30. }) {
  31. c.AbortWithStatusJSON(401, gin.H{
  32. "code": 401,
  33. "msg": "appId和secret不匹配",
  34. })
  35. return
  36. }
  37. c.Next()
  38. }
  39. }