router.go 3.5 KB

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