提交 8abe1bac authored 作者: mooncake9527's avatar mooncake9527

fix AuthCustom

上级 9d7fd918
...@@ -146,6 +146,11 @@ func AuthCustom(verify VerifyCustomFn, opts ...JwtOption) gin.HandlerFunc { ...@@ -146,6 +146,11 @@ func AuthCustom(verify VerifyCustomFn, opts ...JwtOption) gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
authorization := c.GetHeader(HeaderAuthorizationKey) authorization := c.GetHeader(HeaderAuthorizationKey)
if authorization == "" || len(authorization) < 10 {
responseUnauthorized(c, o.isSwitchHTTPCode)
c.Abort()
return
}
// token := strings.TrimPrefix(authorization, "Bearer ") // token := strings.TrimPrefix(authorization, "Bearer ")
token := authorization[7:] // remove Bearer prefix token := authorization[7:] // remove Bearer prefix
claims, err := jwt.ParseCustomToken(token) claims, err := jwt.ParseCustomToken(token)
......
package validator package validator
import ( // // Translation 设置Translation
"mime/multipart" // func Translation() gin.HandlerFunc {
"reflect" // en := en.New()
"strings" // zh := zh.New()
// universalTranslator := ut.New(zh, zh, en)
// valid := validator.New()
// _ = valid.RegisterValidation("mobile", func(fl validator.FieldLevel) bool {
// regex := regexp2.MustCompile(`^1[3456789]\d{9}$`, 0)
// phone := fl.Field().String()
// matched, err := regex.MatchString(phone)
// if err != nil {
// return false
// }
// return matched
// })
// //自定义电话验证方法
// _ = valid.RegisterValidation("phone", func(fl validator.FieldLevel) bool {
// regex := regexp2.MustCompile(`^(\d{3,4}-)?\d{6,11}$`, 0)
// phone := fl.Field().String()
// matched, err := regex.MatchString(phone)
// if err != nil {
// return false
// }
// return matched
// })
// //自定义图片验证方法
// _ = valid.RegisterValidation("image", func(fl validator.FieldLevel) bool {
// file := fl.Field().Interface()
// if fileHeader, ok := file.(multipart.FileHeader); ok {
// contentType := fileHeader.Header.Get("content-type")
// for _, t := range []string{"image/jpeg", "image/png", "image/gif"} {
// if strings.HasPrefix(contentType, t) {
// return true
// }
// }
// }
// return false
// })
"github.com/dlclark/regexp2" // return func(c *gin.Context) {
"github.com/gin-gonic/gin" // //根据参数取翻译器实例
"github.com/go-playground/locales/en" // locale := c.DefaultQuery("locale", "zh")
"github.com/go-playground/locales/zh" // trans, _ := universalTranslator.GetTranslator(locale)
ut "github.com/go-playground/universal-translator" // switch locale {
"github.com/go-playground/validator/v10" // case "en":
en_translations "github.com/go-playground/validator/v10/translations/en" // _ = en_translations.RegisterDefaultTranslations(valid, trans)
zh_translations "github.com/go-playground/validator/v10/translations/zh" // valid.RegisterTagNameFunc(func(fld reflect.StructField) string {
) // return fld.Tag.Get("encomment")
// })
// Translation 设置Translation // default:
func Translation() gin.HandlerFunc { // _ = zh_translations.RegisterDefaultTranslations(valid, trans)
en := en.New() // valid.RegisterTagNameFunc(func(fld reflect.StructField) string {
zh := zh.New() // return fld.Tag.Get("comment")
universalTranslator := ut.New(zh, zh, en) // })
valid := validator.New() // _ = valid.RegisterTranslation("mobile", trans, func(ut ut.Translator) error {
_ = valid.RegisterValidation("mobile", func(fl validator.FieldLevel) bool { // return ut.Add("mobile", "{0}填写不正确", true)
regex := regexp2.MustCompile(`^1[3456789]\d{9}$`, 0) // }, func(ut ut.Translator, fe validator.FieldError) string {
phone := fl.Field().String() // t, _ := ut.T("mobile", fe.Field())
matched, err := regex.MatchString(phone) // return t
if err != nil { // })
return false // _ = valid.RegisterTranslation("phone", trans, func(ut ut.Translator) error {
} // return ut.Add("phone", "{0}填写不正确", true)
return matched // }, func(ut ut.Translator, fe validator.FieldError) string {
}) // t, _ := ut.T("phone", fe.Field())
//自定义电话验证方法 // return t
_ = valid.RegisterValidation("phone", func(fl validator.FieldLevel) bool { // })
regex := regexp2.MustCompile(`^(\d{3,4}-)?\d{6,11}$`, 0) // _ = valid.RegisterTranslation("image", trans, func(ut ut.Translator) error {
phone := fl.Field().String() // return ut.Add("image", "请上传{0}", true)
matched, err := regex.MatchString(phone) // }, func(ut ut.Translator, fe validator.FieldError) string {
if err != nil { // t, _ := ut.T("image", fe.Field())
return false // return t
} // })
return matched // }
}) // c.Set(CtxKey_Translator, trans)
//自定义图片验证方法 // c.Set(CtxKey_Validator, valid)
_ = valid.RegisterValidation("image", func(fl validator.FieldLevel) bool { // c.Next()
file := fl.Field().Interface() // }
if fileHeader, ok := file.(multipart.FileHeader); ok { // }
contentType := fileHeader.Header.Get("content-type")
for _, t := range []string{"image/jpeg", "image/png", "image/gif"} {
if strings.HasPrefix(contentType, t) {
return true
}
}
}
return false
})
return func(c *gin.Context) {
//根据参数取翻译器实例
locale := c.DefaultQuery("locale", "zh")
trans, _ := universalTranslator.GetTranslator(locale)
switch locale {
case "en":
_ = en_translations.RegisterDefaultTranslations(valid, trans)
valid.RegisterTagNameFunc(func(fld reflect.StructField) string {
return fld.Tag.Get("encomment")
})
default:
_ = zh_translations.RegisterDefaultTranslations(valid, trans)
valid.RegisterTagNameFunc(func(fld reflect.StructField) string {
return fld.Tag.Get("comment")
})
_ = valid.RegisterTranslation("mobile", trans, func(ut ut.Translator) error {
return ut.Add("mobile", "{0}填写不正确", true)
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("mobile", fe.Field())
return t
})
_ = valid.RegisterTranslation("phone", trans, func(ut ut.Translator) error {
return ut.Add("phone", "{0}填写不正确", true)
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("phone", fe.Field())
return t
})
_ = valid.RegisterTranslation("image", trans, func(ut ut.Translator) error {
return ut.Add("image", "请上传{0}", true)
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("image", fe.Field())
return t
})
}
c.Set(CtxKey_Translator, trans)
c.Set(CtxKey_Validator, valid)
c.Next()
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论