如何使用光纤将密码解析为字节数组
How do I parse the password as a byte array with 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(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
// ...
})
它作为 string
而不是 []byte
传输。你需要先把它解析为一个字符串,然后你可以把它转换成你想要的结构:
func SignUp(db *database.Database) fiber.Handler {
return func(c *fiber.Ctx) error {
// an anonymous struct to parse the body
body := struct{
Email string
Password string
}{}
if err := c.BodyParser(body); err != nil {
return SendParsingError(c)
}
cred := SignInCredentials{
Email: body.Email,
Password: []byte(body.Password),
}
我正在使用 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
// ...
})
它作为 string
而不是 []byte
传输。你需要先把它解析为一个字符串,然后你可以把它转换成你想要的结构:
func SignUp(db *database.Database) fiber.Handler {
return func(c *fiber.Ctx) error {
// an anonymous struct to parse the body
body := struct{
Email string
Password string
}{}
if err := c.BodyParser(body); err != nil {
return SendParsingError(c)
}
cred := SignInCredentials{
Email: body.Email,
Password: []byte(body.Password),
}