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{}) }