29 lines
559 B
Go
29 lines
559 B
Go
package middleware
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"heruvym/jwt_adapter"
|
|
)
|
|
|
|
func (mw *Middleware) MiddlewareGetJwt(c *fiber.Ctx) error {
|
|
if c.Method() != fiber.MethodGet {
|
|
return c.Next()
|
|
}
|
|
|
|
bearer := c.Query(jwt_adapter.DefaultHeaderKey)
|
|
if bearer != "" {
|
|
adapter, err := jwt_adapter.Decode(bearer)
|
|
if err == nil {
|
|
c.Locals(jwt_adapter.DefaultHeaderKey, adapter)
|
|
}
|
|
} else {
|
|
sess := c.Query("s")
|
|
if sess == "" {
|
|
return nil
|
|
}
|
|
c.Locals(jwt_adapter.DefaultHeaderKey, &jwt_adapter.JwtAdapter{Id: sess})
|
|
}
|
|
|
|
return c.Next()
|
|
}
|