router.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package router
  2. import (
  3. youngeetalentapi "youngmini_server/app/api/youngee_talent_api"
  4. "youngmini_server/app/system/assignment"
  5. "youngmini_server/app/system/sectask"
  6. "youngmini_server/app/system/wxpay"
  7. "youngmini_server/middleware"
  8. "github.com/gogf/gf/frame/g"
  9. "github.com/gogf/gf/net/ghttp"
  10. )
  11. // MiddlewareCORS 允许跨域请求中间件
  12. func MiddlewareCORS(r *ghttp.Request) {
  13. corsOptions := r.Response.DefaultCORSOptions()
  14. 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"
  15. corsOptions.ExposeHeaders = "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar"
  16. corsOptions.MaxAge = 1728000
  17. //corsOptions := ghttp.CORSOptions{
  18. //AllowOrigin: "*",
  19. //AllowMethods: "POST,GET,OPTIONS,PUT,DELETE,UPDATE",
  20. //AllowCredentials: "false",
  21. //MaxAge: 1728000,
  22. //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",
  23. //ExposeHeaders: "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar",
  24. //}
  25. //corsOptions.AllowDomain = []string{"goframe.org", "johng.cn"}
  26. //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"
  27. r.Response.CORS(corsOptions)
  28. r.Middleware.Next()
  29. }
  30. // MiddlewareAuth 用户认证中间件
  31. // func MiddlewareAuth(r *ghttp.Request) {
  32. // //排除路径
  33. // array := garray.NewFrom(g.Slice{"/admin/account"})
  34. // if array.Contains(r.RequestURI) == false {
  35. // userData, err := backstage_service.Token.AuthorizationGetUserData(r)
  36. // if err != nil {
  37. // r.Response.WriteStatus(http.StatusForbidden)
  38. // response.JsonExit(r, http.StatusForbidden, err.Error())
  39. // }
  40. // if userData == nil {
  41. // r.Response.WriteStatus(http.StatusUnauthorized)
  42. // response.JsonExit(r, http.StatusForbidden, "用户不存在")
  43. // }
  44. // }
  45. // // 中间件处理逻辑
  46. // r.Middleware.Next()
  47. // }
  48. // MiddlewareSuperAuth 超级管理员可以操作的登录接口
  49. // func MiddlewareSuperAuth(r *ghttp.Request) {
  50. // // 排除路径
  51. // userData, _ := backstage_service.Token.AuthorizationGetUserData(r)
  52. // if userData.User != "10000000" {
  53. // r.Response.WriteStatus(http.StatusPaymentRequired)
  54. // response.JsonExit(r, http.StatusPaymentRequired, "没有权限操作")
  55. // }
  56. // // 中间件处理逻辑
  57. // r.Middleware.Next()
  58. // }
  59. func init() {
  60. s := g.Server()
  61. // 解决跨域
  62. s.BindMiddleware("/*", MiddlewareCORS)
  63. // v2小程序端接口
  64. s.Group("/youngee/c", func(group *ghttp.RouterGroup) {
  65. group.Middleware(middleware.ErrorHandler)
  66. s.BindHandler("/ping", func(r *ghttp.Request) {
  67. r.Response.Write("哈喽世界!")
  68. })
  69. // group.GET("/ping", func(r *ghttp.Request) {
  70. // r.Response.Write("哈喽世界!")
  71. // })
  72. // 达人不需要鉴权的接口
  73. group.GET("/g", youngeetalentapi.TalentGetApi)
  74. group.POST("/p", youngeetalentapi.TalentPostApi)
  75. // 达人需要鉴权的接口
  76. group.Group("/t", func(group *ghttp.RouterGroup) {
  77. group.Middleware(middleware.DuplicateVerify, middleware.WxAuth)
  78. group.GET("/g", youngeetalentapi.TalentAuthGetApi)
  79. group.POST("/p", youngeetalentapi.TalentAuthPostApi)
  80. })
  81. })
  82. // v2小程序端接口
  83. s.Group("/youngee/c/api", func(group *ghttp.RouterGroup) {
  84. group.Middleware(middleware.ErrorHandler)
  85. //// 达人不需要鉴权的接口
  86. //group.GET("/g", youngeetalentapi.TalentGetApi)
  87. //group.POST("/p", youngeetalentapi.TalentPostApi)
  88. group.Group("/selection", func(group *ghttp.RouterGroup) {
  89. group.GET("/list", sectask.SecTask.List)
  90. })
  91. // 达人需要鉴权的接口
  92. group.Group("/t", func(group *ghttp.RouterGroup) {
  93. group.Middleware(middleware.DuplicateVerify, middleware.WxAuth)
  94. group.Group("/secTask", func(group *ghttp.RouterGroup) {
  95. group.GET("/list", sectask.SecTask.List)
  96. })
  97. group.Group("/assignment", func(group *ghttp.RouterGroup) {
  98. group.GET("/list", assignment.Assignment.List)
  99. group.POST("/add", assignment.Assignment.Add)
  100. })
  101. group.Group("/wxpay", func(group *ghttp.RouterGroup) {
  102. group.POST("/pay", wxpay.WxPay.WxPay)
  103. })
  104. })
  105. })
  106. }