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 关注
- 139 浏览
添加回答
举报
