优化刷新token
This commit is contained in:
@@ -44,13 +44,15 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly IInStockTaskRepositories _inStockTaskRepositories;
|
private readonly IInStockTaskRepositories _inStockTaskRepositories;
|
||||||
private readonly IOutStockService _outStockService;
|
private readonly IOutStockService _outStockService;
|
||||||
private readonly IWebHostEnvironment _env;
|
private readonly IWebHostEnvironment _env;
|
||||||
|
private readonly ILoginService _loginService;
|
||||||
private readonly AppOptions _options;
|
private readonly AppOptions _options;
|
||||||
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
|
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
|
||||||
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories,
|
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories,
|
||||||
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options,
|
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService,
|
||||||
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
||||||
IWebHostEnvironment env)
|
IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
|
_loginService = loginService;
|
||||||
_inStockTaskRepositories = inStockTaskRepositories;
|
_inStockTaskRepositories = inStockTaskRepositories;
|
||||||
_basicsRepositories = basicsRepositories;
|
_basicsRepositories = basicsRepositories;
|
||||||
_options = options?.Value;
|
_options = options?.Value;
|
||||||
@@ -322,10 +324,10 @@ namespace WMS.Web.Api.Controllers
|
|||||||
[Route("lst2")]
|
[Route("lst2")]
|
||||||
public async Task<string> Lst2()
|
public async Task<string> Lst2()
|
||||||
{
|
{
|
||||||
var ids = new List<int>();
|
var oldtoken = "3d046dc06a3f4f1ebcda93e921012c82";
|
||||||
ids.Add(1);
|
var retoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTEwNzIwNjksImlhdCI6MTcxMDk4NTY2OSwianRpIjoiMDA1NTFmM2ItNDQ5Ny00NzU1LTljNGQtNTNiODUxMDBjOTk5In0.XjHDfHhqvfap5MZPqTd45zi1L2_mgxu-lLnyqTKrhD0";
|
||||||
var result = await _inStockTaskRepositories.GetList(ids);
|
await _loginService.RefreshTokenNew(oldtoken, retoken);
|
||||||
return JsonConvert.SerializeObject(result);
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
},
|
},
|
||||||
"SoaOptions": {
|
"SoaOptions": {
|
||||||
"ModuleID": 25,
|
"ModuleID": 25,
|
||||||
"Url_V3": "http://dev.uc.v3.f2b211.com", //<2F><>ʽhttp://uc.v3.f2b211.com
|
"Url_V3": "https://dev.uc.v3.f2b211.com", //<2F><>ʽhttp://uc.v3.f2b211.com
|
||||||
"Url": "http://dev.uc.f2b211.com",
|
"Url": "http://dev.uc.f2b211.com",
|
||||||
"AppId": "100528847652388864",
|
"AppId": "100528847652388864",
|
||||||
"AppSecret": "fa950a1fe690fe610338084b49db7db9",
|
"AppSecret": "fa950a1fe690fe610338084b49db7db9",
|
||||||
|
|||||||
@@ -5333,7 +5333,7 @@
|
|||||||
<summary>
|
<summary>
|
||||||
刷新token
|
刷新token
|
||||||
</summary>
|
</summary>
|
||||||
<param name="Token"></param>
|
<param name="oldToken"></param>
|
||||||
<param name="RefreshToken"></param>
|
<param name="RefreshToken"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
|||||||
@@ -357,14 +357,15 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 刷新token
|
/// 刷新token
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="Token"></param>
|
/// <param name="oldToken"></param>
|
||||||
/// <param name="RefreshToken"></param>
|
/// <param name="RefreshToken"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result<LoginInDto>> RefreshTokenNew(string Token, string RefreshToken)
|
public async Task<Result<LoginInDto>> RefreshTokenNew(string oldToken, string RefreshToken)
|
||||||
{
|
{
|
||||||
|
|
||||||
//1.根据旧token 找到登录对象
|
//1.根据旧token 找到登录对象
|
||||||
var loginInfo = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{Token}");
|
_logger.LogInformation($"刷新Token:前->" + $"wms_login_{oldToken}");
|
||||||
|
var loginInfo = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{oldToken}");
|
||||||
var reqData = new LoginAuthorizeRefreshTokenRequest();
|
var reqData = new LoginAuthorizeRefreshTokenRequest();
|
||||||
reqData.ClientId = _soaOptions.AppId;
|
reqData.ClientId = _soaOptions.AppId;
|
||||||
reqData.ClientSecret = _soaOptions.AppSecret;
|
reqData.ClientSecret = _soaOptions.AppSecret;
|
||||||
@@ -376,7 +377,6 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url_V3 + "/uc/authorize", reqData);
|
string result = _httpClientHelp.PostHttp(_soaOptions.Url_V3 + "/uc/authorize", reqData);
|
||||||
var jObject = JsonObject.Parse(result);
|
var jObject = JsonObject.Parse(result);
|
||||||
|
|
||||||
_logger.LogInformation("刷新后:" + JsonConvert.SerializeObject(jObject));
|
|
||||||
LoginInDto r = new LoginInDto();
|
LoginInDto r = new LoginInDto();
|
||||||
r.UserInfo = new UserInfoDto();
|
r.UserInfo = new UserInfoDto();
|
||||||
r.TokenInfo = new AccessTokenDto();
|
r.TokenInfo = new AccessTokenDto();
|
||||||
@@ -388,12 +388,16 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
|
|
||||||
r.UserInfo = loginInfo.UserInfo;
|
r.UserInfo = loginInfo.UserInfo;
|
||||||
r.SignedIn = true;
|
r.SignedIn = true;
|
||||||
var token = await CreateToken(loginInfo.UserInfo, _loginDto, Token);
|
string NewToken = Guid.NewGuid().ToString("N");
|
||||||
|
var token = await CreateToken(loginInfo.UserInfo, _loginDto, NewToken);
|
||||||
r.TokenInfo = token;
|
r.TokenInfo = token;
|
||||||
loginInfo.TokenInfo = token;
|
loginInfo.TokenInfo = token;
|
||||||
//_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-1>" + token.Expired.ToString());
|
//_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-1>" + token.Expired.ToString());
|
||||||
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||||
_redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
|
_redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
|
||||||
|
_logger.LogInformation($"刷新Token:后->" + $"wms_login_{token.Token}");
|
||||||
|
//移除老的redis缓存
|
||||||
|
_redisClientService.RemoveStringKey($"wms_login_{oldToken}");
|
||||||
//_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-小时->" + ops_login_time.Hours);
|
//_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-小时->" + ops_login_time.Hours);
|
||||||
return Result<LoginInDto>.ReSuccess(r);
|
return Result<LoginInDto>.ReSuccess(r);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,11 +100,11 @@ namespace WMS.Web.Repositories.DependencyInjection
|
|||||||
if (!string.IsNullOrEmpty(logininfo.TokenInfo.Token) && logininfo.TokenInfo.Expired.AddMinutes(-10) <= DateTime.Now)
|
if (!string.IsNullOrEmpty(logininfo.TokenInfo.Token) && logininfo.TokenInfo.Expired.AddMinutes(-10) <= DateTime.Now)
|
||||||
{
|
{
|
||||||
|
|
||||||
TimeSpan _refreshThreshold = TimeSpan.FromMinutes(10);
|
//TimeSpan _refreshThreshold = TimeSpan.FromMinutes(10);
|
||||||
var ttt = logininfo.TokenInfo.Expired - DateTime.Now - _refreshThreshold;
|
//var ttt = logininfo.TokenInfo.Expired - DateTime.Now - _refreshThreshold;
|
||||||
_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";shijianduibi:" + ttt);
|
//_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";shijianduibi:" + ttt);
|
||||||
|
|
||||||
_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";过期时间:" + logininfo.TokenInfo.Expired);
|
//_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";过期时间:" + logininfo.TokenInfo.Expired);
|
||||||
var refreshtokeninfo = RefreshToken(logininfo.TokenInfo.Token, logininfo.TokenInfo.RefreshToken, loginService);
|
var refreshtokeninfo = RefreshToken(logininfo.TokenInfo.Token, logininfo.TokenInfo.RefreshToken, loginService);
|
||||||
var info = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{token}");
|
var info = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{token}");
|
||||||
//_logger.LogInformation("RefreshToken:我在刷新登录--完成:" + info.UserInfo.Nickname);
|
//_logger.LogInformation("RefreshToken:我在刷新登录--完成:" + info.UserInfo.Nickname);
|
||||||
|
|||||||
Reference in New Issue
Block a user