/* * @description: * @Author: CP * @Date: 2020-09-17 17:15:00 * @FilePath: \construction_management\web\middleware\jwt.go */ package middleware import ( "github.com/iris-contrib/middleware/jwt" "github.com/kataras/iris/v12" "go.mod/conf" ) // ResModel 返回数据模板 type ResModel struct { Code string `json:"code"` Msg string `json:"msg"` Data interface{} `json:"data"` } func JwtAuth() *jwt.Middleware { j2 := jwt.New(jwt.Config{ // 注意,新增了一个错误处理函数 ErrorHandler: func(ctx iris.Context, err error) { if err == nil { return } ctx.StopExecution() ctx.StatusCode(iris.StatusUnauthorized) ctx.JSON(ResModel{ Code: "501", Msg: err.Error(), }) }, // 设置一个函数返回秘钥,关键在于return []byte("这里设置秘钥") ValidationKeyGetter: func(token *jwt.Token) (interface{}, error) { return []byte(conf.SignSecret), nil }, // 设置一个加密方法 SigningMethod: jwt.SigningMethodHS256, }) return j2 }