Go语言 Echo跳过JWT中间件

nwwlzxa7  于 2023-03-21  发布在  Go
关注(0)|答案(2)|浏览(188)

我用的是golang jwt中间件。

e.Use(middleware.JWTWithConfig(middleware.JWTConfig{
  SigningKey:  []byte(os.Getenv("Signing_Key")),
  TokenLookup: "header:x-auth-token",       
}))

它等待令牌的所有功能,但我不想使用这个中间件登录功能。如何防止这种情况?

hiz5n14c

hiz5n14c1#

有一个skipper function,你可以用它来检查要跳过的路由。

JWTConfig struct {
  // Skipper defines a function to skip middleware.
  Skipper Skipper
  ... 
}

检查示例

e.Use(middleware.JWTWithConfig(middleware.JWTConfig{
    SigningKey:  []byte(os.Getenv("Signing_Key")),
    TokenLookup: "header:x-auth-token",
    Skipper: func(c echo.Context) bool {
       // Skip middleware if path is equal 'login'
       if c.Request().URL.Path == "/login" {
         return true
       }
       return false
    },
}))
e3bfsja2

e3bfsja22#

可能是这样的

e.Use(middleware.JWTWithConfig(middleware.JWTConfig{
    SigningKey:  []byte(os.Getenv("Signing_Key")),
    TokenLookup: "header:x-auth-token",
    Skipper: func(c echo.Context) bool {
       return c.Request().URL.Path == "/login"
    }
}))

相关问题