diff --git a/controllers/controller.go b/controllers/controller.go index e003038..cbba50c 100644 --- a/controllers/controller.go +++ b/controllers/controller.go @@ -27,13 +27,13 @@ func checkToken(c *gin.Context) (tokenInfo *model.TokenInfo) { cookie *http.Cookie err error ok bool + token string user *model.User ) tokenInfo = &model.TokenInfo{} //验证token //v2下的接口需要验证,v1不需要 if !strings.Contains(c.Request.URL.String(), "v1") { - globals.SugarLogger.Debugf("checkToken cookie: %v", utils.Format4Output(c.Request.Cookies(), true)) if cookie, err = c.Request.Cookie("token"); err != nil { c.JSON(http.StatusOK, &CallBack{ Desc: err.Error(), @@ -43,7 +43,18 @@ func checkToken(c *gin.Context) (tokenInfo *model.TokenInfo) { } else { tokenInfo.Token = cookie.Value } - if user, ok = utils.GetKet(tokenInfo.Token).(*model.User); !ok || user == nil { + globals.SugarLogger.Debugf("checkToken token: %v", token) + if token, ok = utils.GetKet(tokenInfo.Token).(string); !ok || token == "" { + err = fmt.Errorf("token过期或无效,请重新登录!") + c.JSON(http.StatusOK, &CallBack{ + Desc: err.Error(), + Code: model.ErrCodeToken, + }) + return nil + } + if err = json.Unmarshal([]byte(token), &user); err == nil { + tokenInfo.User = user + } else { err = fmt.Errorf("token过期或无效,请重新登录!") c.JSON(http.StatusOK, &CallBack{ Desc: err.Error(), @@ -51,7 +62,6 @@ func checkToken(c *gin.Context) (tokenInfo *model.TokenInfo) { }) return nil } - tokenInfo.User = user } return tokenInfo }