package middleware import ( "fmt" sysmodels "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils" "github.com/gin-gonic/gin" "strconv" "strings" "time" ) func LoginWare() gin.HandlerFunc { return func(c *gin.Context) { //验证登陆 token := c.GetHeader("token") if token == "" { ts := strings.Split(c.Request.RequestURI, "___t=") if len(ts) > 1 { token = ts[1] } } if token == "" { c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token is empty", ""}) c.Redirect(302, "/login") return } tk := utils.GetGlobalTokenStore().Get(token) if tk == nil { c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token Invalid", ""}) c.Redirect(302, "/login") return } //非移动端登录 userAgent := c.Request.UserAgent() if !(strings.Contains(userAgent, "iPhone") || strings.Contains(userAgent, "Android") || strings.Contains(userAgent, "Dart")) { timestamp_str := strconv.FormatUint(uint64(time.Now().UnixNano()), 10) sec_tooken := utils.GenerateToken(tk.LoginID + timestamp_str) utils.GetGlobalTokenStore().SetPc(sec_tooken, tk) fmt.Println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ userAgent @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:", userAgent) } //wfendpoint := config.AppConfig.GetKey("wfendpoint") //wfclient.Instance().Init(wfendpoint, tk.UserId, tk.LoginID, tk.AccessToken, tk.Domain) c.Set("token", tk) c.Set("user_id", tk.UserId) c.Set("domain", tk.Domain) c.Next() } }