forked from ebhomengo/niki
26 lines
677 B
Go
26 lines
677 B
Go
|
package middleware
|
||
|
|
||
|
import (
|
||
|
"git.gocasts.ir/ebhomengo/niki/config"
|
||
|
authservice "git.gocasts.ir/ebhomengo/niki/service/auth/benefactor"
|
||
|
mw "github.com/labstack/echo-jwt/v4"
|
||
|
"github.com/labstack/echo/v4"
|
||
|
)
|
||
|
|
||
|
func Auth(service authservice.Service, cfg authservice.Config) echo.MiddlewareFunc {
|
||
|
return mw.WithConfig(mw.Config{
|
||
|
ContextKey: config.AuthMiddlewareContextKey,
|
||
|
SigningKey: []byte(cfg.SignKey),
|
||
|
// TODO - as sign method string to config
|
||
|
SigningMethod: "HS256",
|
||
|
ParseTokenFunc: func(c echo.Context, auth string) (interface{}, error) {
|
||
|
claims, err := service.ParseToken(auth)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return claims, nil
|
||
|
},
|
||
|
})
|
||
|
}
|