middleware_duplicate_verify.go 602 B

123456789101112131415161718192021222324252627282930
  1. package middleware
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. )
  6. func generateDuplicateKey(r *ghttp.Request) string {
  7. // 用请求的uri和
  8. return r.RequestURI + r.GetRemoteIp()
  9. }
  10. func DuplicateVerify(r *ghttp.Request) {
  11. key := generateDuplicateKey(r)
  12. //DoVar 方法用于执行 Redis 命令,并返回结果
  13. //v, _ := g.Redis().DoVar("GET", key)
  14. //结果转为整数类型
  15. //if v.Int() != 0 {
  16. // r.Response.WriteJson(g.Map{
  17. // "code": 500,
  18. // "msg": "操作过于频繁",
  19. // })
  20. //
  21. // return
  22. //}
  23. g.Redis().Do("SETEX", key, 1, 1)
  24. r.Middleware.Next()
  25. }