func (j *JWT) Validate() echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(c echo.Context) error { if j.CondFn != nil && j.CondFn(c) == false { return h.Handle(c) } /*//Test tokenString, err := j.Response(map[string]interface{}{"uid": "1", "username": "******"}) if err == nil { println("jwt token:", tokenString) } //*/ token, err := ParseFromRequest(c.Request(), func(token *jwt.Token) (interface{}, error) { b := ([]byte(j.Secret)) return b, nil }) if err != nil { return err } if !token.Valid { return errors.New(`Incorrect signature.`) } c.Set(`webx:jwtClaims`, token.Claims) return h.Handle(c) }) }) }
func webxHeader() echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(c echo.Context) error { c.Response().Header().Set(`Server`, `webx v`+VERSION) return h.Handle(c) }) }) }
func Sessions(name string, store ss.Store) echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(ctx echo.Context) error { c := X.X(ctx) s := ss.NewMySession(store, name, ctx) if se, ok := interface{}(c).(Sessionser); ok { se.InitSession(s) } err := h.Handle(c) s.Save() return err }) }) }
func (a *Language) Middleware() echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(c echo.Context) error { lang := a.DetectURI(c.Response(), c.Request()) c.SetFunc("Lang", func() string { return lang }) c.SetFunc("T", func(key string, args ...interface{}) string { return i18n.T(lang, key, args...) }) X.X(c).Language = lang return h.Handle(c) }) }) }
func (c *Config) Middleware() echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(ctx echo.Context) error { if c.Read(ctx) { return nil } if err := h.Handle(ctx); err != nil { return err } if X.X(ctx).Exit { return nil } c.Write(ctx.Response().Body(), ctx) return nil }) }) }
func (c *Xsrf) Middleware() echo.MiddlewareFunc { return echo.MiddlewareFunc(func(h echo.Handler) echo.Handler { return echo.HandlerFunc(func(ctx echo.Context) error { if !c.On { return h.Handle(ctx) } if ignore, _ := ctx.Get(`webx:ignoreXsrf`).(bool); ignore { return h.Handle(ctx) } c.Register(ctx) val := c.Value(ctx) if ctx.Request().Method() == `POST` { formVal := ctx.Form(c.FieldName) if formVal == "" || val != formVal { return errors.New("xsrf token error.") } } return h.Handle(ctx) }) }) }