【发布时间】:2023-02-24 03:18:37
【问题描述】:
我在项目中使用gin-jwt作为认证,但是我在开发阶段想绕过它来测试接口,如何设置一个特定的url参数,比如debug来绕过认证并测试接口直接地。
例子: 使用jwt-example
-
http://localhost:8000/hello?debug不需要登录 -
http://localhost:8000/hello需要登录
我真的很感激任何帮助。
【问题讨论】:
我在项目中使用gin-jwt作为认证,但是我在开发阶段想绕过它来测试接口,如何设置一个特定的url参数,比如debug来绕过认证并测试接口直接地。
例子: 使用jwt-example
http://localhost:8000/hello?debug不需要登录http://localhost:8000/hello需要登录
我真的很感激任何帮助。
【问题讨论】:
一种常见的方法是设置一个环境变量,如 MYAPP_CONTEXT=dev,在您的 Go 代码中从环境中检索该变量(使用 os.Getenv),并为 JWT 身份验证设置您的中间件以关闭该值。因此,如果环境变量设置为dev,您将返回您想要的任何用户/权限。否则,它将照常进行。
如果您愿意,也可以关闭查询字符串中的 debug 参数,方法是使用 gin 上下文的 Query 函数检查它,以便当且仅当环境设置为 dev和debug 参数出现在查询字符串中,您是否绕过正常身份验证。
【讨论】: