作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 go 编写的 API,我正在使用 gin-gonic 框架来实现我的端点。我的项目遵循干净的架构,这意味着我的整个应用程序分为多个层,即 Controller 、服务、存储库和 session 。端点由 auth0 保护,验证在 gin 中间件中进行。在中间件中,我可以从 JWT 中提取主题(在标题中设置)
现在,这是我的问题。我想在我的查询中使用这个主题值。我想知道我是否可以将主题(子)存储在上下文中并在我的代码的其他部分中使用它而无需传递上下文。这可能吗?还是我只需要更新我的所有函数并为所有下游调用添加一个新参数“Sub”?
我指的是使用某种全局变量来访问请求特定数据(来自 JWT token 的 SUB)。我知道这是一个不好的做法 - 我只是想知道除了传递请求特定的数据之外是否还有其他方法可以实现这一点?任何帮助表示赞赏。
最佳答案
这确实是上下文的全部要点 - 它的存在是为了保存这些东西并在链中传递。这很重要,因为您希望将其保持在请求的范围内——如果您开始使用全局变量,您可能会遇到争用问题,因为多个请求会混淆相同的数据。同样,如果 token 在请求之间无效。
如果您的身份验证中间件在您的查询之前运行(听起来确实如此),那么只需让它以您满意的方式将主题置于上下文中即可。
关于go - 如何在 Go 中访问请求特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62419764/
我是一名优秀的程序员,十分优秀!