/// <summary> /// 刷新令牌 /// </summary> /// <param name="refreshToken"></param> /// <returns></returns> public async Task <LoginResultModel> RefreshToken(string refreshToken) { var result = new LoginResultModel(); var cacheKey = CacheKeys.AUTH_REFRESH_TOKEN + refreshToken; if (!_cacheHandler.TryGetValue(cacheKey, out AccountAuthInfoEntity authInfo)) { authInfo = await _authInfoRepository.GetByRefreshToken(refreshToken); if (authInfo == null) { result.Error = "身份认证信息无效,请重新登录~"; return(result); } //加入缓存 var expires = (int)(authInfo.RefreshTokenExpiredTime - DateTime.Now).TotalMinutes; await _cacheHandler.SetAsync(cacheKey, authInfo, expires); } if (authInfo.RefreshTokenExpiredTime <= DateTime.Now) { result.Error = "身份认证信息过期,请重新登录~"; return(result); } var account = await _accountRepository.GetAsync(authInfo.AccountId); if (account == null) { result.Error = "账户信息不存在~"; return(result); } var checkAccountResult = account.Check(); if (!checkAccountResult.Successful) { result.Error = checkAccountResult.Msg; return(result); } result.Success = true; result.AccountId = account.Id; result.AccountType = account.Type; result.TenantId = account.TenantId; result.UserName = account.UserName; result.Name = account.Name; result.Phone = account.Phone; result.Platform = authInfo.Platform; result.RefreshToken = authInfo.RefreshToken; result.LoginTime = _dateTimeHelper.TimeStamp2DateTime(authInfo.LoginTime); return(result); }
/// <summary> /// 刷新令牌 /// </summary> /// <param name="refreshToken"></param> /// <returns></returns> public async Task <ResultModel <LoginResultModel> > RefreshToken(string refreshToken) { var result = new ResultModel <LoginResultModel>(); var cacheKey = CacheKeys.AUTH_REFRESH_TOKEN + refreshToken; if (!_cacheHandler.TryGetValue(cacheKey, out AccountAuthInfoEntity authInfo)) { authInfo = await _authInfoRepository.GetByRefreshToken(refreshToken); if (authInfo == null) { return(result.Failed("身份认证信息无效,请重新登录~")); } //加入缓存 var expires = (int)(authInfo.RefreshTokenExpiredTime - DateTime.Now).TotalMinutes; await _cacheHandler.SetAsync(cacheKey, authInfo, expires); } if (authInfo.RefreshTokenExpiredTime <= DateTime.Now) { return(result.Failed("身份认证信息过期,请重新登录~")); } var account = await _accountRepository.GetAsync(authInfo.AccountId); if (account == null) { return(result.Failed("账户信息不存在")); } var checkAccountResult = account.Check(); if (!checkAccountResult.Successful) { return(result.Failed(checkAccountResult.Msg)); } return(result.Success(new LoginResultModel { Account = account, AuthInfo = authInfo })); }
public async Task <ResultModel <LoginResultModel> > RefreshToken(string refreshToken) { var result = new ResultModel <LoginResultModel>(); var cacheKey = string.Format(CacheKeys.RefreshToken, refreshToken); if (!_cacheHandler.TryGetValue(cacheKey, out AccountAuthInfoEntity authInfo)) { authInfo = await _authInfoRepository.GetByRefreshToken(refreshToken); if (authInfo == null) { return(result.Failed("刷新令牌无效")); } //加入缓存 var expires = (int)(authInfo.RefreshTokenExpiredTime - DateTime.Now).TotalMinutes; await _cacheHandler.SetAsync(cacheKey, authInfo, expires); } if (authInfo.RefreshTokenExpiredTime <= DateTime.Now) { return(result.Failed("刷新令牌过期")); } var account = await _accountRepository.GetAsync(authInfo.AccountId); var checkAccountResult = CheckAccount(account); if (!checkAccountResult.Successful) { return(result.Failed(checkAccountResult.Msg)); } return(result.Success(new LoginResultModel { Account = account, AuthInfo = authInfo })); }