2 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
不喜歡杜松子酒,纖維沒(méi)有內(nèi)置驗(yàn)證包
使用 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貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
我們可以使用結(jié)構(gòu)標(biāo)簽
`validate:"required"`
確保請(qǐng)求有效負(fù)載中包含所有必填字段。
此外,我們可以使用驗(yàn)證器包提供的標(biāo)簽驗(yàn)證字段,對(duì)于其他驗(yàn)證,我們可以實(shí)現(xiàn)自定義驗(yàn)證器并像這樣注冊(cè)它們:
validate := validator.New() validate.RegisterValidation("password-validator", PasswordValidator)
- 2 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)