gpt4 book ai didi

go - 如何从 go Fiber 中的本地上下文中提取值

转载 作者:行者123 更新时间:2023-12-03 08:15:29 24 4
gpt4 key购买 nike

我已成功使用本地上下文通过自定义中间件设置数据库查询结果。我试图了解如何对用户进行身份验证,然后从数据库中提取其详细信息并将其注入(inject)上下文中。这已经完成了。

路由上 final方法上的本地数据实际上是一个接口(interface),我想从之前的身份验证中间件设置的数据中提取字段。如何将此接口(interface)类型处理为某种形式(如结构或 json),以便我可以获得用于执行某些逻辑的字段和值?

user := c.Locals("user") 
fmt.Println("checking for locals",user)

从上面的用户是结构体用户

 {
Name string `json:"name"`
Emain string `json:"email"`
ID string `json:"id"`
Password string `json:"password"`
}

如何获取姓名和电子邮件?

最佳答案

因此,在深入研究光纤文档并阅读有关接口(interface)(尤其是空接口(interface))之后,我认为我有一个解决方案,但需要纠正

我看到可以将接口(interface)转换为具体类型。就我而言,我会采用 var user interface{}

类型的 c.Locals("user")

然后将其转换为一个结构体,将指针传递给用户模型,如下所示

user := c.Locals("user") 
details, ok :=user.(*models.User)
fmt.Println("checking for locals -----------",details.Name)

关于go - 如何从 go Fiber 中的本地上下文中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69561058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com