go - 将用户存储在上下文中或其他地方?

标签 go

我很难确定自己是否以最佳方式思考问题。我想知道在通过某种类型的中间件(BasicAuthJWT)对用户进行身份验证后如何处理用户。

我应该将所有相关的用户字段作为一个值存储在上下文中吗?如果我将它们存储在上下文中,那么我需要一个特殊的函数来提取它们吗? (这将使用用户定义的 contextKey 类型来检索并将其类型转换回正确的结构)

我可以想出一些可行的方法,但我不知道这是不是最合理的方法。

最佳答案

是的,context.Context专门用于请求范围的变量等。 (注意,每个请求,因此不适合存储您打算在请求之间访问的数据;为此您应该考虑某种 session 机制)

context.Value(key interface{}) 接口(interface){}接口(interface)函数是您从上下文中检索值的方式。

关于go - 将用户存储在上下文中或其他地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586607/

相关文章:

go - 如何从多个 goroutine 写入同一个 channel

programming-languages - 移植到 AVR 架构?

go - 如何匹配switch中的字符串

intellij-idea - 使用 jetbrains 设置 golang 环境

mongodb - 如何构建bson.D {}

reflection - 如何打开 reflect.Type?

networking - flannel错误初始化网络失败打开tun设备失败

go - Go 中的文本处理 - 如何将字符串转换为字节?

go - 如何两次解锁互斥锁

reactjs - 发送到我的服务器时,“使用Google登录” JWT无效