worker.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package manager
  2. import (
  3. "Wine-Server/utils"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "github.com/redis/go-redis/v9"
  7. )
  8. func PublicKeyHandler(ctx *gin.Context) {
  9. ctx.JSON(utils.HttpOk, utils.Success(utils.JsonType{"public": utils.ClientPub, "private": utils.ClientPri}))
  10. }
  11. func EncryptTestHandler(ctx *gin.Context) {
  12. type Param struct {
  13. User string `json:"user"`
  14. Pass string `json:"pass"`
  15. }
  16. var param Param
  17. err := ctx.ShouldBind(&param)
  18. if err != nil {
  19. fmt.Println(err.Error())
  20. ctx.JSON(utils.HttpOk, utils.Fail("param error 1"))
  21. return
  22. }
  23. param.Pass, err = utils.Decrypt(param.Pass)
  24. if err != nil {
  25. fmt.Println(err.Error())
  26. ctx.JSON(utils.HttpOk, utils.Fail("param error 3"))
  27. return
  28. }
  29. fmt.Printf("user: %s, password: %s\n", param.User, param.Pass)
  30. ctx.JSON(utils.HttpOk, utils.Success(param.Pass))
  31. }
  32. func RegisterHandler(ctx *gin.Context) {
  33. _, ok := ctx.GetPostForm("device")
  34. if !ok {
  35. ctx.JSON(utils.HttpOk, utils.Fail("param lost."))
  36. }
  37. token := utils.RandomString(16, utils.AlphaNumPatten)
  38. key := fmt.Sprintf("Seller-%s", token)
  39. Diff:
  40. for {
  41. res, err := utils.Redis.Get(ctx, key).Result()
  42. switch {
  43. case err == redis.Nil:
  44. break Diff
  45. case err != nil:
  46. ctx.JSON(utils.HttpOk, utils.Fail("获取Token失败"))
  47. return
  48. case res == "":
  49. break Diff
  50. }
  51. token = utils.RandomString(16, utils.AlphaNumPatten)
  52. key = fmt.Sprintf("Seller-%s", token)
  53. }
  54. utils.Redis.Set(ctx, key, 1, 0)
  55. ctx.Header("Token", token)
  56. ctx.JSON(utils.HttpOk, utils.Success(token))
  57. }