Go 如何使用光纤将密码解析为字节数组

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

我正在使用Go fiber的主体解析器来解析请求主体。我有以下结构

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没有用于传输字节数组的选项。