Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Go中访问特定于请求的数据?_Go_Go Gin - Fatal编程技术网

如何在Go中访问特定于请求的数据?

如何在Go中访问特定于请求的数据?,go,go-gin,Go,Go Gin,我有一个用go编写的API,我正在使用gingonic框架来实现我的端点。我的项目遵循干净的体系结构,这意味着我的整个应用程序分为多个层,即控制器、服务、存储库和会话。端点由auth0保护,验证在gin中间件中执行。在中间件中,我可以从JWT中提取主题(在标题中设置) 现在,我的问题是。我想在查询中使用此主题值。我想知道是否可以将主题(sub)存储在上下文中,并在代码的其他部分中使用它,而无需传递上下文。这可能吗?或者我只需要更新所有函数并向所有下游调用添加一个新参数“Sub” 我指的是使用一个

我有一个用go编写的API,我正在使用gingonic框架来实现我的端点。我的项目遵循干净的体系结构,这意味着我的整个应用程序分为多个层,即控制器、服务、存储库和会话。端点由auth0保护,验证在gin中间件中执行。在中间件中,我可以从JWT中提取主题(在标题中设置)

现在,我的问题是。我想在查询中使用此主题值。我想知道是否可以将主题(sub)存储在上下文中,并在代码的其他部分中使用它,而无需传递上下文。这可能吗?或者我只需要更新所有函数并向所有下游调用添加一个新参数“Sub”


我指的是使用一个排序的全局变量来访问特定于请求的数据(来自JWT令牌的SUB)。我知道这是一种糟糕的做法——我只是想知道除了传递特定于请求的数据之外,是否还有其他方法来实现这一点?感谢您的帮助。

这确实是上下文的全部要点——它的存在是为了保存这些类型的东西,并在链中传递。这一点很重要,因为您希望将其范围限制在请求上——如果您开始使用globals,您可能会遇到一些问题,因为多个请求正在处理相同的数据,从而导致争用。同样,如果令牌在请求之间无效


如果您的身份验证中间件在查询之前运行(听起来像是这样),那么只需让它以您满意的方式将主题放到上下文中即可。

同意。我想我会这么做的。只是我必须将上下文作为参数添加到所有下游函数调用中。我想知道是否有办法忽略这一点。似乎没有,我们必须传递上下文。谷歌也鼓励开发者这样做。