123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- package router
- import (
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- youngeetalentapi "youngmini_server/app/api/youngee_talent_api"
- "youngmini_server/app/model"
- "youngmini_server/app/system/assignment"
- "youngmini_server/app/system/sectask"
- "youngmini_server/app/system/wxpay"
- "youngmini_server/middleware"
- )
- // 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()
- // }
- //
- // 用于存数据库的验证信息
- // json用于序列化和反序列化
- // 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()
- //检查是否能访问数据库
- md := g.Model("younggee_user")
- bk, err := md.One()
- // 解决跨域
- s.BindMiddleware("/*", MiddlewareCORS)
- // v2小程序端接口
- s.Group("/youngee/c", func(group *ghttp.RouterGroup) {
- group.Middleware(middleware.ErrorHandler)
- //group.GET("/ping", func(r *ghttp.Request)才表示/youngee/c/ping生效
- s.BindHandler("/ping", func(r *ghttp.Request) {
- if err == nil {
- r.Response.WriteJson(bk)
- }
- })
- s.BindHandler("/douyinauth", func(r *ghttp.Request) {
- r.Response.WriteJson("here to auth")
- println("begin to auth")
- code := r.GetString("code")
- state := r.GetString("state")
- //结构体赋值
- authInfo := &model.AuthInfo{
- Code: code,
- State: state,
- }
- // 使用ORM保存到数据库
- if _, err := g.DB().Model("info_auth").Save(authInfo); err != nil {
- r.Response.WriteJson(g.Map{
- "error": err.Error(),
- })
- return
- }
- // 将保存成功的信息写入响应
- r.Response.WriteJson(g.Map{
- "message": "Auth info saved successfully",
- })
- // 将 map 序列化为 JSON 并写入响应
- r.Response.WriteJson(authInfo)
- println("over")
- //存数据库info_auth中
- })
- // 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)
- })
- })
- })
- }
|