From e87b04d7f9d6b25c858d421432bed5443f91b9df Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期一, 16 九月 2019 11:10:34 +0800
Subject: [PATCH] update goffmpeg and capture

---
 middlewares/auth/auth.go |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go
index 8832b06..4c7c75d 100644
--- a/middlewares/auth/auth.go
+++ b/middlewares/auth/auth.go
@@ -1 +1,70 @@
 package auth
+
+import (
+	"github.com/gin-gonic/gin"
+	"net/http"
+	"strings"
+	"webserver/extend/config"
+	"basic.com/valib/logger.git"
+)
+
+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.Contains(urlPath,"/httpImage") {
+			domain := config.Server.PublicDomain
+			//domainReg := regexp.MustCompile(``+domain+``)
+			//if domainReg.MatchString(host) {//鍩熷悕璁块棶
+			//   imgUrl = domain
+			//}
+
+			urlPath = strings.Replace(urlPath, "/httpImage", "", -1)
+			if strings.Contains(urlPath,domain) {
+				urlPath = strings.Replace(urlPath,"/"+domain,"",-1)
+			}
+			logger.Debug("urlPath:",urlPath)
+			idx := strings.LastIndex(urlPath, ":")
+			tmpPath := ""
+			if idx >-1 {//璺緞涓寘鍚湁绔彛,鍙栫鍙d互鍚庤矾寰�
+				tmpPath = urlPath[idx:]
+			} else {
+				tmpPath = ":6080"+tmpPath
+			}
+			c.Header("Access-Control-Allow-Origin","*")
+			logger.Debug("domain+tmpPath:",domain+tmpPath)
+			c.Redirect(http.StatusMovedPermanently, domain+tmpPath)
+			return
+		} else {
+			c.Next()
+		}
+	}
+}
+
+func GetCurUser(c *gin.Context)map[string]interface{}{
+	return (*GenerateAuthDriver()).User(c).(map[string]interface{})
+}
\ No newline at end of file

--
Gitblit v1.8.0