package router import ( youngeetalentapi "youngmini_server/app/api/youngee_talent_api" "youngmini_server/app/system/assignment" "youngmini_server/app/system/sectask" "youngmini_server/app/system/wxpay" "youngmini_server/middleware" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" ) // MiddlewareCORS 允许跨域请求中间件 func MiddlewareCORS(r *ghttp.Request) { corsOptions := r.Response.DefaultCORSOptions() corsOptions.AllowHeaders = "Authorization,Content-Length,X-CSRF-Token,Token,session,X_Requested_With,Accept,Origin,Host,Connection,Accept-Encoding,Accept-Language,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma" corsOptions.ExposeHeaders = "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar" corsOptions.MaxAge = 1728000 //corsOptions := ghttp.CORSOptions{ //AllowOrigin: "*", //AllowMethods: "POST,GET,OPTIONS,PUT,DELETE,UPDATE", //AllowCredentials: "false", //MaxAge: 1728000, //AllowHeaders: "Authorization,Content-Length,X-CSRF-Token,Token,session,X_Requested_With,Accept,Origin,Host,Connection,Accept-Encoding,Accept-Language,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma", //ExposeHeaders: "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar", //} //corsOptions.AllowDomain = []string{"goframe.org", "johng.cn"} //corsOptions.AllowHeaders = "Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,X-Forwarded-*,Pragma,Cache-Control,If-Modified-Since,userToken,appid" r.Response.CORS(corsOptions) r.Middleware.Next() } // MiddlewareAuth 用户认证中间件 // func MiddlewareAuth(r *ghttp.Request) { // //排除路径 // array := garray.NewFrom(g.Slice{"/admin/account"}) // if array.Contains(r.RequestURI) == false { // userData, err := backstage_service.Token.AuthorizationGetUserData(r) // if err != nil { // r.Response.WriteStatus(http.StatusForbidden) // response.JsonExit(r, http.StatusForbidden, err.Error()) // } // if userData == nil { // r.Response.WriteStatus(http.StatusUnauthorized) // response.JsonExit(r, http.StatusForbidden, "用户不存在") // } // } // // 中间件处理逻辑 // r.Middleware.Next() // } // MiddlewareSuperAuth 超级管理员可以操作的登录接口 // func MiddlewareSuperAuth(r *ghttp.Request) { // // 排除路径 // userData, _ := backstage_service.Token.AuthorizationGetUserData(r) // if userData.User != "10000000" { // r.Response.WriteStatus(http.StatusPaymentRequired) // response.JsonExit(r, http.StatusPaymentRequired, "没有权限操作") // } // // 中间件处理逻辑 // r.Middleware.Next() // } func init() { s := g.Server() // 解决跨域 s.BindMiddleware("/*", MiddlewareCORS) // v2小程序端接口 s.Group("/youngee/c", func(group *ghttp.RouterGroup) { group.Middleware(middleware.ErrorHandler) s.BindHandler("/ping", func(r *ghttp.Request) { r.Response.Write("哈喽世界!") }) // group.GET("/ping", func(r *ghttp.Request) { // r.Response.Write("哈喽世界!") // }) // 达人不需要鉴权的接口 group.GET("/g", youngeetalentapi.TalentGetApi) group.POST("/p", youngeetalentapi.TalentPostApi) // 达人需要鉴权的接口 group.Group("/t", func(group *ghttp.RouterGroup) { group.Middleware(middleware.DuplicateVerify, middleware.WxAuth) group.GET("/g", youngeetalentapi.TalentAuthGetApi) group.POST("/p", youngeetalentapi.TalentAuthPostApi) }) }) // v2小程序端接口 s.Group("/youngee/c/api", func(group *ghttp.RouterGroup) { group.Middleware(middleware.ErrorHandler) //// 达人不需要鉴权的接口 //group.GET("/g", youngeetalentapi.TalentGetApi) //group.POST("/p", youngeetalentapi.TalentPostApi) group.Group("/selection", func(group *ghttp.RouterGroup) { group.GET("/list", sectask.SecTask.List) }) // 达人需要鉴权的接口 group.Group("/t", func(group *ghttp.RouterGroup) { group.Middleware(middleware.DuplicateVerify, middleware.WxAuth) group.Group("/secTask", func(group *ghttp.RouterGroup) { group.GET("/list", sectask.SecTask.List) }) group.Group("/assignment", func(group *ghttp.RouterGroup) { group.GET("/list", assignment.Assignment.List) group.POST("/add", assignment.Assignment.Add) }) group.Group("/wxpay", func(group *ghttp.RouterGroup) { group.POST("/pay", wxpay.WxPay.WxPay) }) }) }) }