代码拉取完成,页面将自动刷新
package middleware
import (
"fmt"
"gitee.com/xlizy/common-go/base/const/threadlocal"
"gitee.com/xlizy/common-go/base/enums/common_error"
"gitee.com/xlizy/common-go/base/response"
"gitee.com/xlizy/common-go/utils/validator"
"gitee.com/xlizy/common-go/utils/zlog"
"github.com/google/uuid"
"github.com/kataras/iris/v12/context"
"runtime"
)
var Default = func(ctx *context.Context) {
traceId := ctx.GetHeader("X-Request-Id")
if traceId == "" {
traceId = uuid.New().String()
}
threadlocal.SetTraceId(traceId)
userId := ctx.GetHeader("X-Request-UserId")
if userId != "" {
threadlocal.SetUserId(userId)
}
validator.TransInit(ctx)
ctx.Next()
}
var CrossDomain = func(ctx *context.Context) {
ctx.Header("Access-Control-Allow-Origin", ctx.Request().Header.Get("Origin"))
ctx.Header("Access-Control-Allow-Headers", "Content-Type,X-Request-Id,X-Request-Some")
ctx.Header("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE,PATCH,HEAD,TRACE")
ctx.Header("Access-Control-Allow-Credentials", "true")
ctx.Header("Access-Control-Max-Age", "7200")
if ctx.Request().Method == "OPTIONS" {
ctx.StatusCode(200)
} else {
ctx.Next()
}
}
var NeedLogin = func(ctx *context.Context) {
userId := ctx.GetHeader("X-Request-UserId")
if userId == "" {
ctx.JSON(response.Error(common_error.NOT_LOGGED_IN, nil))
} else {
if userId != "" {
threadlocal.SetUserId(userId)
ctx.Next()
} else {
ctx.JSON(response.Error(common_error.NOT_LOGGED_IN, nil))
}
}
}
var GobalRecover = func(ctx *context.Context) {
defer func() {
if err := recover(); err != nil {
if ctx.IsStopped() {
return
}
var stacktrace string
for i := 1; ; i++ {
_, f, l, got := runtime.Caller(i)
if !got {
break
}
stacktrace += fmt.Sprintf("%s:%d\n", f, l)
}
errMsg := fmt.Sprintf("%s", err)
zlog.Info("异常Ctl入口:{}", ctx.HandlerName())
zlog.Info("ErrorInfo:{}", errMsg)
zlog.Info("ErrorStacktrace:{}", stacktrace)
// 返回错误信息
ctx.JSON(response.Error(common_error.SYSTEM_ERROR, errMsg))
ctx.StatusCode(500)
ctx.StopExecution()
}
}()
ctx.Next()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。