sunty
2019-07-12 d42b09cda8b2bc58c43c200f3aabdb0b2a7e9211
middlewares/auth/auth.go
@@ -1 +1,50 @@
package auth
import (
   "github.com/gin-gonic/gin"
   "net/http"
   "strings"
   "webserver/extend/config"
)
const (
   TokenKey = "abc123456789"
)
type Auth interface {
   Check(c *gin.Context)bool
   User(c *gin.Context)interface{}
   Login(http *http.Request,w http.ResponseWriter,user map[string]interface{})interface{}
   Logout(http *http.Request,w http.ResponseWriter) bool
}
func GenerateAuthDriver() *Auth {
   var authDriver Auth
   authDriver = NewJwtAuthDriver()
   return &authDriver
}
func AuthHandler() gin.HandlerFunc {
   return func(c *gin.Context) {
      urlPath := c.Request.URL.Path
      if strings.Contains(urlPath,"/data/api-v") && !strings.Contains(urlPath,"login"){
         //jwtDriver :=NewJwtAuthDriver()
         //if !jwtDriver.Check(c) {
         //   util.ResponseFormat(c,code.TokenNotFound,"尚未登录,请登录")
         //   c.Abort()
         //}
         c.Next()
      } else if strings.HasPrefix(urlPath,"/httpImage") {
         imgUrl := config.Server.ImageUrl
         c.Header("Access-Control-Allow-Origin","*")
         c.Redirect(http.StatusMovedPermanently, imgUrl+urlPath[10:])
         return
      } else {
         c.Next()
      }
   }
}
func GetCurUser(c *gin.Context)map[string]interface{}{
   return (*GenerateAuthDriver()).User(c).(map[string]interface{})
}