diff options
Diffstat (limited to 'vendor/github.com/labstack/echo/cookbook/jwt/custom-claims')
-rw-r--r-- | vendor/github.com/labstack/echo/cookbook/jwt/custom-claims/server.go | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/vendor/github.com/labstack/echo/cookbook/jwt/custom-claims/server.go b/vendor/github.com/labstack/echo/cookbook/jwt/custom-claims/server.go deleted file mode 100644 index b3a13205..00000000 --- a/vendor/github.com/labstack/echo/cookbook/jwt/custom-claims/server.go +++ /dev/null @@ -1,86 +0,0 @@ -package main - -import ( - "net/http" - "time" - - jwt "github.com/dgrijalva/jwt-go" - "github.com/labstack/echo" - "github.com/labstack/echo/middleware" -) - -// jwtCustomClaims are custom claims extending default ones. -type jwtCustomClaims struct { - Name string `json:"name"` - Admin bool `json:"admin"` - jwt.StandardClaims -} - -func login(c echo.Context) error { - username := c.FormValue("username") - password := c.FormValue("password") - - if username == "jon" && password == "shhh!" { - - // Set custom claims - claims := &jwtCustomClaims{ - "Jon Snow", - true, - jwt.StandardClaims{ - ExpiresAt: time.Now().Add(time.Hour * 72).Unix(), - }, - } - - // Create token with claims - token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) - - // Generate encoded token and send it as response. - t, err := token.SignedString([]byte("secret")) - if err != nil { - return err - } - return c.JSON(http.StatusOK, echo.Map{ - "token": t, - }) - } - - return echo.ErrUnauthorized -} - -func accessible(c echo.Context) error { - return c.String(http.StatusOK, "Accessible") -} - -func restricted(c echo.Context) error { - user := c.Get("user").(*jwt.Token) - claims := user.Claims.(*jwtCustomClaims) - name := claims.Name - return c.String(http.StatusOK, "Welcome "+name+"!") -} - -func main() { - e := echo.New() - - // Middleware - e.Use(middleware.Logger()) - e.Use(middleware.Recover()) - - // Login route - e.POST("/login", login) - - // Unauthenticated route - e.GET("/", accessible) - - // Restricted group - r := e.Group("/restricted") - - // Configure middleware with the custom claims type - config := middleware.JWTConfig{ - Claims: &jwtCustomClaims{}, - SigningKey: []byte("secret"), - } - r.Use(middleware.JWTWithConfig(config)) - r.GET("", restricted) - - e.Logger.Fatal(e.Start(":1323")) -} |