如何从 gofiber 中的本地上下文中提取值

How to extract values from local context in gofiber

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

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

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

从上面的用户是struct user

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

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

因此,在深入研究光纤文档并阅读了有关接口,尤其是空接口的信息后,我认为我有一个解决方案,但有待更正

我看到有人可以将接口转换为具体类型。在我的例子中,我会采用 var user interface{}

类型的 c.Locals("user")

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

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