gpt4 book ai didi

go - 如何在 Go 中访问请求特定数据?

转载 作者:行者123 更新时间:2023-12-01 22:13:00 27 4
gpt4 key购买 nike

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

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

我指的是使用某种全局变量来访问请求特定数据(来自 JWT token 的 SUB)。我知道这是一个不好的做法 - 我只是想知道除了传递请求特定的数据之外是否还有其他方法可以实现这一点?任何帮助表示赞赏。

最佳答案

这确实是上下文的全部要点 - 它的存在是为了保存这些东西并在链中传递。这很重要,因为您希望将其保持在请求的范围内——如果您开始使用全局变量,您可能会遇到争用问题,因为多个请求会混淆相同的数据。同样,如果 token 在请求之间无效。

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

关于go - 如何在 Go 中访问请求特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62419764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com