| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package middleware
- import (
- "github.com/gogf/gf/v2/net/ghttp"
- "yx-dataset-server/app/errors"
- "yx-dataset-server/library/auth"
- "yx-dataset-server/library/gplus"
- "yx-dataset-server/library/utils"
- "yx-dataset-server/router/api/controllers"
- )
- func UserAuthMiddleware(auth auth.Auther, skippers ...SkipperFunc) ghttp.HandlerFunc {
- return func(r *ghttp.Request) {
- if len(skippers) > 0 && skippers[0](r) {
- r.Middleware.Next()
- return
- }
- var userId string
- if t := gplus.GetToken(r); t != "" {
- id, err := auth.ParseUserID(t)
- if err != nil {
- controllers.ResError(r, err)
- }
- userId = id
- }
- if userId != "" {
- gplus.SetUserId(r, userId)
- }
- if userId == "" {
- if utils.GetConfig("common.RunMode").String() == "debug" {
- gplus.SetUserId(r, utils.GetConfig("root.user_name").String())
- r.Middleware.Next()
- return
- }
- controllers.ResError(r, errors.ErrNoPerm)
- }
- r.Middleware.Next()
- }
- }
|