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