package xiangyu import ( "errors" "eta/eta_bridge/models/eta" "eta/eta_bridge/models/response" "eta/eta_bridge/services" "eta/eta_bridge/services/xiangyu" "time" ) // LoginEtaByToken // @Description: 获取eta的session // @author: Roc // @datetime 2024-01-23 17:44:15 // @param code string // @return resp response.LoginResp // @return err error // @return errMsg string func LoginEtaByToken(sid, token string) (resp response.LoginResp, err error, errMsg string) { // 获取xiangyu token isLogin, err := xiangyu.CheckSidPS(sid, token) if err != nil { return } if !isLogin { errMsg = `OA平台未登录,请重新登录` err = errors.New(errMsg) return } // 获取eta用户信息 adminInfo, err := eta.GetSysUserByAdminName(sid) if err != nil { return } // 生成登录session resp, session, err, errMsg := services.CreateEtaSession(adminInfo) if err != nil { return } // 记录两方session的绑定信息 thirdSession := &eta.SysThirdSession{ ID: 0, SysUserID: uint64(session.SysUserId), UserName: session.UserName, AccessToken: session.AccessToken, ThirdAccessToken: token, //ThirdRefreshToken: tokenResp.RefreshToken, //ThirdExpiredTime: time.Now().Add(time.Duration(tokenResp.ExpiresIn-100) * time.Second), CreatedTime: time.Now(), LastUpdatedTime: time.Now(), } eta.AddSysThirdSession(thirdSession) return }