From f11c45b7f0a486f0461caed204846e4e663a3cd8 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期二, 20 八月 2019 20:27:13 +0800
Subject: [PATCH] fix 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..8a23438 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"
+ "webserver/extend/logger"
+)
+
+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