package middleware import ( "drive-linked/pkg/common" "drive-linked/pkg/dto" "github.com/kataras/iris/v12" "strings" ) func SignRequired(ctx iris.Context) { auth := ctx.GetHeader("Authorization") //TODO:更详细的判断,包括请求格式是否正确 // 取出Bearer后的内容 var tokenString string if auths := strings.Split(auth, " "); len(auths) > 1 { tokenString = auths[1] } else { ctx.Skip() } // 验证token err := common.VerifyToken(tokenString) if err == nil { ctx.Values().Set("logged_in", true) ctx.Next() } else { ctx.Values().Set("logged_in", false) resp := dto.NewResponse(ctx) resp.ErrUnauthorized() } }