0

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

路由上final方法的本地数据实际上是一个接口,我想从我之前的auth中间件设置的数据中提取字段。如何将此接口类型处理为某种形式,如 struct 或 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"`
}

我怎样才能得到姓名和电子邮件?

4

1 回答 1

0

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

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

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

user := c.Locals("user") 
 details, ok :=user.(*models.User)
 fmt.Println("checking for locals -----------",details.Name)
于 2021-10-14T04:05:38.273 回答