YiTao/middleware/admin.go

27 lines
563 B
Go

package middleware
import (
"github.com/iris-contrib/middleware/jwt"
"github.com/kataras/iris/v12"
)
var AdminMiddleware = iris.Handler(func(ctx iris.Context) {
if token, ok := ctx.Values().Get("jwt").(*jwt.Token); ok {
// Use the token if needed
is_admin := token.Claims.(jwt.MapClaims)["is_admin"].(bool)
if !is_admin {
ctx.StatusCode(iris.StatusForbidden)
ctx.JSON(iris.Map{"message": "forbidden"})
return
}
} else {
ctx.StatusCode(iris.StatusUnauthorized)
ctx.JSON(iris.Map{"message": "unauthorized"})
return
}
ctx.Next()
})