2 回答

TA貢獻1860條經驗 獲得超9個贊
不喜歡杜松子酒,纖維沒有內置驗證包
使用 go-playground/validator
go get github.com/go-playground/validator
例子
type UpdatePasswordData struct {
Password string `json:"password" validate:"required,min=8,max=32"`
NewPassword string `json:"new_password" validate:"required,min=8,max=32"`
NewPasswordConfirm string `json:"new_password_confirm" validate:"eqfield=NewPassword"`
}
func UpdatePassword(c *fiber.Ctx) error {
var body UpdatePasswordData
if err := c.BodyParser(&body); err != nil {
return err
}
validate := validator.New()
if err := validate.Struct(body); err != nil {
return err
}
// do others
// get current user, check password == hash(body.password)
// save new passworld
}
或者您可以查看光纖辦公文檔https://docs.gofiber.io/guide/validation#validator-package

TA貢獻2051條經驗 獲得超10個贊
我們可以使用結構標簽
`validate:"required"`
確保請求有效負載中包含所有必填字段。
此外,我們可以使用驗證器包提供的標簽驗證字段,對于其他驗證,我們可以實現自定義驗證器并像這樣注冊它們:
validate := validator.New() validate.RegisterValidation("password-validator", PasswordValidator)
- 2 回答
- 0 關注
- 107 瀏覽
添加回答
舉報