check.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package login
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "go_server/base/config"
  7. "go_server/base/core"
  8. "go_server/model/common/response"
  9. "go_server/model/system"
  10. "go_server/service/base"
  11. "go_server/utils"
  12. )
  13. func (s *AppService) Check(c *gin.Context) {
  14. type request struct {
  15. Username string `json:"username"`
  16. }
  17. req := new(request)
  18. if err := c.BindJSON(req); err != nil {
  19. response.Resp(c, err.Error())
  20. return
  21. }
  22. allowed, err := core.NewRateLimiter(s.Redis()).CanExecuteMethod(context.Background(), "Check", c.RemoteIP())
  23. if err != nil {
  24. core.Log.Error(err.Error())
  25. response.Resp(c, "请求频繁")
  26. return
  27. }
  28. if !allowed {
  29. response.Resp(c, "请求频繁")
  30. return
  31. }
  32. resp := map[string]interface{}{
  33. "isSetGoogleAuth": false,
  34. "isNeedCaptcha": true,
  35. "t": 0,
  36. }
  37. t, ok := core.CapEngine().CapCheck(s.Redis(), c.RemoteIP())
  38. resp["isNeedCaptcha"] = ok
  39. resp["t"] = t
  40. if req.Username == "" {
  41. response.Resp(c, resp)
  42. return
  43. }
  44. user, ok := base.GetOne[system.Administrator](s.DB(), "username", req.Username)
  45. if !ok {
  46. response.Resp(c, resp)
  47. return
  48. }
  49. if user.Lock {
  50. response.Resp(c, resp)
  51. return
  52. }
  53. if user.GoogleKey != "" {
  54. resp["isSetGoogleAuth"] = true
  55. }
  56. response.Resp(c, resp)
  57. }
  58. func (s *AppService) WalletUrl() string {
  59. if config.AppConf().Mod == config.ModEnvProd {
  60. return "http://10.0.0.52:1432"
  61. }
  62. return "http://127.0.0.1:1432"
  63. }
  64. func (s *AppService) WalletInfo(c *gin.Context) {
  65. url := fmt.Sprintf("%s/api/wallet/info", s.WalletUrl())
  66. resp, err := utils.Get[interface{}](url)
  67. if err != nil {
  68. response.Resp(c, err.Error())
  69. return
  70. }
  71. response.Resp(c, resp)
  72. }