123456789101112131415161718192021222324252627282930 |
- package config
- import (
- "context"
- "github.com/golang-jwt/jwt/v5"
- "github.com/labstack/echo-jwt/v4"
- "github.com/labstack/echo/v4"
- )
- const ctxKeyJwt = "echo.ctx.jwt"
- func (c Configuration) EchoJwtMiddleware() echo.MiddlewareFunc {
- return echojwt.WithConfig(echojwt.Config{
- ContextKey: ctxKeyJwt,
- SigningKey: []byte(c.SecretKey),
- SuccessHandler: func(ctx echo.Context) {
- val := context.WithValue(ctx.Request().Context(), ctxKeyJwt, ctx.Get(ctxKeyJwt))
- ctx.SetRequest(ctx.Request().WithContext(val))
- },
- })
- }
- func Token(ctx context.Context) *jwt.Token {
- t, ok := ctx.Value(ctxKeyJwt).(*jwt.Token)
- if !ok {
- return nil
- }
- return t
- }
|