Go 如何使用光纤将密码解析为字节数组
我正在使用Go fiber的主体解析器来解析请求主体。我有以下结构Go 如何使用光纤将密码解析为字节数组,go,go-fiber,Go,Go Fiber,我正在使用Go fiber的主体解析器来解析请求主体。我有以下结构 type SignInCredentials struct { Email string Password []byte } 其中我有一个密码作为字节片。当我试着这样解析身体的时候 func SignUp(db *database.Database) fiber.Handler { return func(c *fiber.Ctx) error { cred := new(mod
type SignInCredentials struct {
Email string
Password []byte
}
其中我有一个密码作为字节片。当我试着这样解析身体的时候
func SignUp(db *database.Database) fiber.Handler {
return func(c *fiber.Ctx) error {
cred := new(model.SignUpCredentials)
if err := c.BodyParser(cred); err != nil {
return SendParsingError(c)
}
我得到一个模式错误
schema: error converting value for index 0 of \"Password\
因为表单数据密码的类型与[]字节类型不匹配。我查看了他们的示例,发现在文档中他们使用字符串来存储密码。但我决定将其存储为字节片。我该怎么做
// Field names should start with an uppercase letter
type Person struct {
Name string `json:"name" xml:"name" form:"name"`
Pass string `json:"pass" xml:"pass" form:"pass"`
}
app.Post("/", func(c *fiber.Ctx) error {
p := new(Person)
if err := c.BodyParser(p); err != nil {
return err
}
log.Println(p.Name) // john
log.Println(p.Pass) // doe
// ...
})
它作为
字符串
,而不是[]字节
传输。首先需要将其解析为字符串,然后可以将其转换为所需的结构:
func注册(db*database.database)fiber.Handler{
返回func(c*fiber.Ctx)错误{
//用于分析主体的匿名结构
正文:=结构{
电子邮件字符串
密码字符串
}{}
如果错误:=c.BodyParser(body);错误!=nil{
返回SendParsingError(c)
}
cred:=显著增加{
电子邮件:body.Email,
密码:[]字节(body.Password),
}
是否有一种方法或建议将其作为字节数组传输?这是一个post表单,对吗?该表单进行url编码,因此:否。如果正文是json,则相同。json没有用于传输字节数组的选项。