|
@@ -472,270 +472,264 @@ func (c *BaseAuthController) logUri(respContent []byte, requestBody, ip string)
|
|
func (c *BaseAuthController) Prepare() {
|
|
func (c *BaseAuthController) Prepare() {
|
|
|
|
|
|
method := c.Ctx.Input.Method()
|
|
method := c.Ctx.Input.Method()
|
|
|
|
+ if method == `HEAD` {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "请求异常,请联系客服!", ErrMsg: "POST之外的请求,暂不支持"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if method != "POST" && method != "GET" {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "请求异常,请联系客服!", ErrMsg: "POST之外的请求,暂不支持"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
uri := c.Ctx.Input.URI()
|
|
uri := c.Ctx.Input.URI()
|
|
|
|
|
|
- if method != "HEAD" {
|
|
|
|
- if method == "POST" || method == "GET" {
|
|
|
|
-
|
|
|
|
- {
|
|
|
|
- lang := c.Ctx.Input.Header("Lang")
|
|
|
|
- if lang == "" {
|
|
|
|
- lang = utils.ZhLangVersion
|
|
|
|
- }
|
|
|
|
- c.Lang = lang
|
|
|
|
- }
|
|
|
|
|
|
|
|
- authorization := c.Ctx.Input.Header("authorization")
|
|
+
|
|
- if authorization == "" {
|
|
+ {
|
|
- authorization = c.Ctx.Input.Header("Authorization")
|
|
+ lang := c.Ctx.Input.Header("Lang")
|
|
- }
|
|
+ if lang == "" {
|
|
- if authorization == "" {
|
|
+ lang = utils.ZhLangVersion
|
|
- newAuthorization := c.GetString("authorization")
|
|
+ }
|
|
- if newAuthorization != `` {
|
|
+ c.Lang = lang
|
|
- authorization = "authorization=" + newAuthorization
|
|
+ }
|
|
- } else {
|
|
|
|
- newAuthorization = c.GetString("Authorization")
|
|
|
|
- authorization = "authorization=" + newAuthorization
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if strings.Contains(authorization, ";") {
|
|
|
|
- authorization = strings.Replace(authorization, ";", "$", 1)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if authorization == "" {
|
|
|
|
- strArr := strings.Split(uri, "?")
|
|
|
|
- for k, v := range strArr {
|
|
|
|
- fmt.Println(k, v)
|
|
|
|
- }
|
|
|
|
- if len(strArr) > 1 {
|
|
|
|
- authorization := strArr[1]
|
|
|
|
- authorization = strings.Replace(authorization, "Authorization", "authorization", -1)
|
|
|
|
- fmt.Println(authorization)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
-
|
|
+ isOk, token, resp := checkToken(c)
|
|
- var cookieVal string
|
|
+ if !isOk {
|
|
- cookieVal = c.Ctx.Input.Header("CookieVal")
|
|
+ _ = c.JSON(resp, false, false)
|
|
- if cookieVal == "" {
|
|
+ c.StopRun()
|
|
- cookieVal = c.Ctx.Input.Header("cookieval")
|
|
+ return
|
|
- }
|
|
+ }
|
|
- if cookieVal == "" {
|
|
|
|
- cookieVal = c.Ctx.Input.Header("Cookieval")
|
|
|
|
- }
|
|
|
|
- fmt.Println("cookieVal:", cookieVal)
|
|
|
|
- if cookieVal != "" {
|
|
|
|
-
|
|
|
|
- if authorization != "" {
|
|
|
|
- tokenStr := authorization
|
|
|
|
- tokenArr := strings.Split(tokenStr, "=")
|
|
|
|
- token := tokenArr[1]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- session, err := system.GetSysSessionByToken(token)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if err != nil || session == nil {
|
|
|
|
- newLogin, e := services.UserLoginChange(cookieVal)
|
|
|
|
- if e != nil {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.JSON(models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- account := utils.MD5(session.UserName)
|
|
|
|
- loginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN, session.Id)
|
|
|
|
- loginCache, _ := utils.Rc.RedisString(loginKey)
|
|
|
|
- if session.UserName != cookieVal || !utils.CheckToken(account, token) || time.Now().After(session.ExpiredTime) || (session.IsRemember != 1 && loginCache == ``) {
|
|
|
|
- newLogin, e := services.UserLoginChange(cookieVal)
|
|
|
|
- if e != nil {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.JSON(models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- newLogin, e := services.UserLoginChange(cookieVal)
|
|
|
|
- if e != nil {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.JSON(models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
-
|
|
+
|
|
- if authorization == "" {
|
|
+
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "请重新授权!", ErrMsg: "请重新授权:Token is empty or account is empty"}, false, false)
|
|
+
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- tokenStr := authorization
|
|
|
|
- tokenArr := strings.Split(tokenStr, "=")
|
|
|
|
- token := tokenArr[1]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- session, err := system.GetSysSessionByToken(token)
|
|
|
|
- if err != nil {
|
|
|
|
- if utils.IsErrNoRow(err) {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + token}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if session == nil {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "sesson is empty "}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- account := utils.MD5(session.UserName)
|
|
|
|
- if !utils.CheckToken(account, token) {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "鉴权失败,请重新登录!", ErrMsg: "登录失效,请重新登陆!,CheckToken Fail"}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if time.Now().After(session.ExpiredTime) {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "请重新登录!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- admin, err := system.GetSysUserById(session.SysUserId)
|
|
|
|
- if err != nil {
|
|
|
|
- if utils.IsErrNoRow(err) {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取admin 信息失败 " + strconv.Itoa(session.SysUserId)}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "获取admin信息异常,Eerr:" + err.Error()}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if admin == nil {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "admin is empty "}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if admin.Enabled != 1 {
|
|
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "账户信息异常!", ErrMsg: "账户被禁用,不允许登陆!,CheckToken Fail"}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
|
|
-
|
|
+ session, err := system.GetSysSessionByToken(token)
|
|
- if session.IsRemember != 1 {
|
|
+ if err != nil {
|
|
- loginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN, session.Id)
|
|
+ if utils.IsErrNoRow(err) {
|
|
- loginInfo, _ := utils.Rc.RedisString(loginKey)
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + token}, false, false)
|
|
- if loginInfo == `` {
|
|
+ c.StopRun()
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "超时未操作,系统自动退出!", ErrMsg: "超时未操作,系统自动退出!"}, false, false)
|
|
+ return
|
|
- c.StopRun()
|
|
+ }
|
|
- return
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
|
|
- }
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if session == nil {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "sesson is empty "}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ account := utils.MD5(session.UserName)
|
|
|
|
+ if !utils.CheckToken(account, token) {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "鉴权失败,请重新登录!", ErrMsg: "登录失效,请重新登陆!,CheckToken Fail"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if time.Now().After(session.ExpiredTime) {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "请重新登录!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ admin, err := system.GetSysUserById(session.SysUserId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if utils.IsErrNoRow(err) {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取admin 信息失败 " + strconv.Itoa(session.SysUserId)}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "获取admin信息异常,Eerr:" + err.Error()}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if admin == nil {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "admin is empty "}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if admin.Enabled != 1 {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "账户信息异常!", ErrMsg: "账户被禁用,不允许登陆!,CheckToken Fail"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
-
|
|
+
|
|
-
|
|
+ if session.IsRemember != 1 {
|
|
-
|
|
+ loginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN, session.Id)
|
|
-
|
|
+ loginInfo, _ := utils.Rc.RedisString(loginKey)
|
|
-
|
|
+ if loginInfo == `` {
|
|
-
|
|
+ c.JSON(models.BaseResponse{Ret: 408, Msg: "超时未操作,系统自动退出!", ErrMsg: "超时未操作,系统自动退出!"}, false, false)
|
|
-
|
|
+ c.StopRun()
|
|
-
|
|
+ return
|
|
-
|
|
+ }
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-
|
|
+
|
|
- if uri != `/adminapi/eta_trial/user/login_duration` && uri != `/adminapi/eta_trial/user/active` {
|
|
+
|
|
- utils.Rc.Put(loginKey, "1", utils.LoginCacheTime*time.Minute)
|
|
+
|
|
-
|
|
+
|
|
- noTrustLoginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST, admin.AdminId)
|
|
+
|
|
- utils.Rc.Put(noTrustLoginKey, session.Id, utils.LoginCacheTime*time.Minute)
|
|
+
|
|
- }
|
|
+
|
|
- }
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if uri != `/adminapi/eta_trial/user/login_duration` && uri != `/adminapi/eta_trial/user/active` {
|
|
|
|
+ utils.Rc.Put(loginKey, "1", utils.LoginCacheTime*time.Minute)
|
|
|
|
+
|
|
|
|
+ noTrustLoginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST, admin.AdminId)
|
|
|
|
+ utils.Rc.Put(noTrustLoginKey, session.Id, utils.LoginCacheTime*time.Minute)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ admin.RoleTypeCode = GetSysUserRoleTypeCode(admin.RoleTypeCode)
|
|
|
|
+ c.SysUser = admin
|
|
|
|
+ c.Session = session
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ roleId := admin.RoleId
|
|
|
|
+ list, e := system.GetMenuButtonApisByRoleId(roleId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ c.JSON(models.BaseResponse{Ret: 403, Msg: "获取接口权限出错!", ErrMsg: "获取接口权限出错!"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var api string
|
|
|
|
+ for _, v := range list {
|
|
|
|
+ if v.Api != "" {
|
|
|
|
+ api += v.Api + "&"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ api = strings.TrimRight(api, "&")
|
|
|
|
+ uri = strings.Replace(uri, "/adminapi", "", 1)
|
|
|
|
+ uris := strings.Split(uri, "?")
|
|
|
|
+ uri = uris[0]
|
|
|
|
+
|
|
|
|
+ apis := strings.Split(api, "&")
|
|
|
|
+ apiMap := make(map[string]bool, 0)
|
|
|
|
+ for _, s := range apis {
|
|
|
|
+ apiMap[s] = true
|
|
|
|
+ }
|
|
|
|
|
|
- admin.RoleTypeCode = GetSysUserRoleTypeCode(admin.RoleTypeCode)
|
|
+ fmt.Println("uri:", uri)
|
|
- c.SysUser = admin
|
|
|
|
- c.Session = session
|
|
|
|
|
|
|
|
-
|
|
+
|
|
- roleId := admin.RoleId
|
|
+ if !apiMap[uri] {
|
|
- list, e := system.GetMenuButtonApisByRoleId(roleId)
|
|
+ c.JSON(models.BaseResponse{Ret: 403, Msg: "无权访问!", ErrMsg: "无权访问!"}, false, false)
|
|
|
|
+ c.StopRun()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func checkToken(c *BaseAuthController) (isOk bool, token string, resp models.BaseResponse) {
|
|
|
|
+
|
|
|
|
+ isOk = true
|
|
|
|
+ uri := c.Ctx.Input.URI()
|
|
|
|
+ authorization := c.Ctx.Input.Header("authorization")
|
|
|
|
+ if authorization == "" {
|
|
|
|
+ authorization = c.Ctx.Input.Header("Authorization")
|
|
|
|
+ }
|
|
|
|
+ if authorization == "" {
|
|
|
|
+ newAuthorization := c.GetString("authorization")
|
|
|
|
+ if newAuthorization != `` {
|
|
|
|
+ authorization = "authorization=" + newAuthorization
|
|
|
|
+ } else {
|
|
|
|
+ newAuthorization = c.GetString("Authorization")
|
|
|
|
+ authorization = "authorization=" + newAuthorization
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if strings.Contains(authorization, ";") {
|
|
|
|
+ authorization = strings.Replace(authorization, ";", "$", 1)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if authorization == "" {
|
|
|
|
+ strArr := strings.Split(uri, "?")
|
|
|
|
+ for k, v := range strArr {
|
|
|
|
+ fmt.Println(k, v)
|
|
|
|
+ }
|
|
|
|
+ if len(strArr) > 1 {
|
|
|
|
+ authorization = strArr[1]
|
|
|
|
+ authorization = strings.Replace(authorization, "Authorization", "authorization", -1)
|
|
|
|
+ fmt.Println(authorization)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if authorization != "" {
|
|
|
|
+ tokenStr := authorization
|
|
|
|
+ tokenArr := strings.Split(tokenStr, "=")
|
|
|
|
+ token = tokenArr[1]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ aiUser := c.Ctx.GetCookie("ai_user")
|
|
|
|
+ fmt.Println("ai_user:", aiUser)
|
|
|
|
+ if aiUser != "" {
|
|
|
|
+
|
|
|
|
+ if token == `` {
|
|
|
|
+ newLogin, e := services.UserLoginChange(aiUser)
|
|
if e != nil {
|
|
if e != nil {
|
|
- c.JSON(models.BaseResponse{Ret: 403, Msg: "获取接口权限出错!", ErrMsg: "获取接口权限出错!"}, false, false)
|
|
+ resp = models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}
|
|
- c.StopRun()
|
|
+ } else {
|
|
- return
|
|
+ resp = models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}
|
|
- }
|
|
|
|
- var api string
|
|
|
|
- for _, v := range list {
|
|
|
|
- if v.Api != "" {
|
|
|
|
- api += v.Api + "&"
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
+ isOk = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
-
|
|
+
|
|
-
|
|
+
|
|
- api = strings.TrimRight(api, "&")
|
|
+
|
|
- uri = strings.Replace(uri, "/adminapi", "", 1)
|
|
+ session, err := system.GetSysSessionByToken(token)
|
|
- uris := strings.Split(uri, "?")
|
|
+ if err != nil {
|
|
- uri = uris[0]
|
|
+ newLogin, e := services.UserLoginChange(aiUser)
|
|
-
|
|
+ if e != nil {
|
|
- apis := strings.Split(api, "&")
|
|
+ resp = models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}
|
|
- apiMap := make(map[string]bool, 0)
|
|
+ } else {
|
|
- for _, s := range apis {
|
|
+ resp = models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}
|
|
- apiMap[s] = true
|
|
|
|
}
|
|
}
|
|
|
|
+ isOk = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
- fmt.Println("uri:", uri)
|
|
+
|
|
-
|
|
+ account := utils.MD5(session.UserName)
|
|
-
|
|
+ loginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN, session.Id)
|
|
- if !apiMap[uri] {
|
|
+ loginCache, _ := utils.Rc.RedisString(loginKey)
|
|
- c.JSON(models.BaseResponse{Ret: 403, Msg: "无权访问!", ErrMsg: "无权访问!"}, false, false)
|
|
+ if session.UserName != aiUser || !utils.CheckToken(account, token) || time.Now().After(session.ExpiredTime) || (session.IsRemember != 1 && loginCache == ``) {
|
|
- c.StopRun()
|
|
+ newLogin, e := services.UserLoginChange(aiUser)
|
|
- return
|
|
+ if e != nil {
|
|
|
|
+ resp = models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}
|
|
|
|
+ } else {
|
|
|
|
+ resp = models.BaseResponse{Ret: models.BaseRespReLoginErr, Msg: "用户切换,请刷新页面", ErrMsg: "user exchanged", Data: newLogin}
|
|
}
|
|
}
|
|
- } else {
|
|
+ isOk = false
|
|
- c.JSON(models.BaseResponse{Ret: 408, Msg: "请求异常,请联系客服!", ErrMsg: "POST之外的请求,暂不支持"}, false, false)
|
|
|
|
- c.StopRun()
|
|
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if token == "" {
|
|
|
|
+ resp = models.BaseResponse{Ret: 408, Msg: "请重新授权!", ErrMsg: "请重新授权:Token is empty or account is empty"}
|
|
|
|
+ isOk = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return
|
|
}
|
|
}
|