package routes import ( "log" "testfb/utils" "github.com/gofiber/fiber/v2" ) // 注册路由 func SetupRoutes(app *fiber.App) { app.Post("/login", login) } // 处理登录 func login(c *fiber.Ctx) error { //请求参数是JSON格式,解析JSON数据 var data map[string]string if err := c.BodyParser(&data); err != nil { log.Println(err) return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "Invalid request", }) } //把JSON数据中的用户名和密码取出来 if data["username"] == "" || data["password"] == "" { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "Invalid request", }) } username := data["username"] password := data["password"] log.Printf("Login request for user: %s", username) log.Printf("Password: %s", password) //验证用户名和密码 if utils.ValiddateUser(username, password) { token, err := utils.GenerateJWT(username) if err != nil { log.Println(err) return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Cannot get token, Internal server error", }) } log.Println("Token generated for user:", username) return c.Status(fiber.StatusOK).JSON(fiber.Map{ "token": token, }) } log.Printf("Invalid username or password for user: %s", username) return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{ "message": "Invalid username or password", }) }