/// <summary> ///当token将要过期时,提前置换一个新的token /// </summary> /// <returns></returns> public async Task <WebResponseContent> ReplaceToken() { var db = DbContext.Set <Hiiops_Cart_SellerUser>(); WebResponseContent responseContent = new WebResponseContent(); string error = ""; Hiiops_Cart_LoginInfo loginInfo = null; try { string requestToken = HttpContext.Current.Request.Headers[AppSetting.TokenHeaderName]; requestToken = requestToken?.Replace("Bearer ", ""); if (SellerContent.Current.Token != requestToken) { return(responseContent.Error("Token已失效!")); } if (JwtHelper.IsExp(requestToken)) { return(responseContent.Error("Token已过期!")); } int Id = SellerContent.Current.Id; loginInfo = await db.Where(x => x.Id == Id).Select(s => new Hiiops_Cart_LoginInfo() { Id = Id, Account = s.Account, UnionId = s.UnionId, NickNme = s.NickName, OpenId = s.OpenId, Phone = s.Phone, Enable = s.Status, Token = s.Token, UserName = s.Name }).FirstAsync(); if (loginInfo == null) { return(responseContent.Error("未查到用户信息!")); } string token = JwtHelper.IssueJwt(Id.ToString()); //移除当前缓存 base.CacheContext.Remove(Id.GetUserIdKey()); //只更新的token字段 DbContext.Database.ExecuteSqlRaw($"UPDATA Hiiops_Cart_SellerUser SET Token = '{token}'"); responseContent.OK(null, token); } catch (Exception ex) { error = ex.Message + ex.StackTrace + ex.Source; responseContent.Error("token替换出错了.."); } finally { Logger.Info(LoggerType.ReplaceToeken, ($"用户Id:{loginInfo?.Id},用户{loginInfo?.UserName}") + (responseContent.Status ? "token替换成功" : "token替换失败"), null, error); } return(responseContent); }
public Hiiops_Cart_LoginInfo GetLoginInfo(int Id) { if (_loginInfo != null) { return(_loginInfo); } if (Id <= 0) { _loginInfo = new Hiiops_Cart_LoginInfo(); return(_loginInfo); } string key = Id.GetUserIdKey(); _loginInfo = CacheService.Get <Hiiops_Cart_LoginInfo>(key); if (_loginInfo != null && _loginInfo.Id > 0) { return(_loginInfo); } _loginInfo = DBServerProvider.DbContext.Set <Hiiops_Cart_SellerUser>() .Where(x => x.Id == Id).Select(s => new Hiiops_Cart_LoginInfo() { Id = Id, Account = s.Account, UnionId = s.UnionId, NickNme = s.NickName, OpenId = s.OpenId, Phone = s.Phone, Enable = s.Status, Token = s.Token, UserName = s.Name }).FirstOrDefault(); if (_loginInfo != null && _loginInfo.Id > 0) { CacheService.AddObject(key, _loginInfo); } return(_loginInfo ?? new Hiiops_Cart_LoginInfo()); }