删除不要的代码
This commit is contained in:
@@ -100,20 +100,5 @@ namespace WMS.Web.Api.Controllers
|
||||
await _loginService.LoginOutSingleAsync(value);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("RefreshToken")]
|
||||
public async Task<Result<LoginInDto>> RefreshToken()
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result<LoginInDto>.ReFailure(BaseResultCodes.UnAuthorized);
|
||||
var res = await _loginService.RefreshToken(loginInfo.TokenInfo.Token, loginInfo.TokenInfo.RefreshToken);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"AllowedCores": "localhost,http://localhost:8080,http://192.168.1.188:8080",
|
||||
"RedisConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=1",
|
||||
"AppOptions": {
|
||||
"DBConnectionString": "Server=192.168.1.253; Database=wms_db;User Id=root;password=bf69f5755f97e943;port=3306;CharSet=gb2312;Connect Timeout=150;",
|
||||
"RedisConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=2",
|
||||
@@ -54,15 +53,6 @@
|
||||
"Bucket": "orico-wms-test", //<2F><>ʽ orico-wms
|
||||
"Url": "https://wmstestfile.f2b211.com/" //<2F><><EFBFBD><EFBFBD> https://wmstestfile.f2b211.com/ <20><>ʽ https://wmsfile.f2b211.com/
|
||||
},
|
||||
"HttpOptions": {
|
||||
"Url": "dev.uc.f2b211.com",
|
||||
"K3Url": "http://39.108.150.2:8066/api/k3-id32-mait/add-ces",
|
||||
"K3UrlLogin": "http://39.108.150.2:8066/api/login",
|
||||
"K3Enable": "false",
|
||||
"EspUrl": "https://esp-test.itrusign.cn/esp",
|
||||
"EspAppId": "ark",
|
||||
"EspAppSecret": "e5499b392e099ecfe633af12993d0d5f"
|
||||
},
|
||||
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
"QuartzJobOptions": {
|
||||
//<2F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ֵ
|
||||
|
||||
@@ -302,12 +302,6 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Api.Controllers.LoginController.RefreshToken">
|
||||
<summary>
|
||||
刷新token
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Api.Controllers.MoveBoxRecordController.GetPagedList(WMS.Web.Core.Dto.MoveBoxRecord.MoveBoxRecordQueryRequest)">
|
||||
<summary>
|
||||
列表
|
||||
|
||||
@@ -3184,13 +3184,6 @@
|
||||
<param name="NewToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.GetUserInfoAsync(System.String)">
|
||||
<summary>
|
||||
得到单点用户信息
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.GetUserInfoByCode(System.String)">
|
||||
<summary>
|
||||
|
||||
@@ -3206,13 +3199,6 @@
|
||||
<param name="password"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutAsync(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOut(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
@@ -3220,12 +3206,6 @@
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.RefreshToken(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.RefreshTokenNew(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
@@ -3234,15 +3214,6 @@
|
||||
<param name="RefreshToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutSingleAsync(System.Int32,System.String,System.Int32)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="ucid"></param>
|
||||
<param name="token"></param>
|
||||
<param name="expires_in"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutSingleAsync(System.String)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
@@ -3257,20 +3228,6 @@
|
||||
<param name="authorization"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.Online(System.String)">
|
||||
<summary>
|
||||
单点-在线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.Offline(System.String)">
|
||||
<summary>
|
||||
单点-下线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.IService.Public.IOutStockTaskService">
|
||||
<summary>
|
||||
出库任务
|
||||
@@ -4803,13 +4760,6 @@
|
||||
<param name="NewToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.GetUserInfoAsync(System.String)">
|
||||
<summary>
|
||||
得到单点用户信息
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.GetUserInfoByCode(System.String)">
|
||||
<summary>
|
||||
获取单点登录信息
|
||||
@@ -4825,12 +4775,6 @@
|
||||
<param name="password"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutAsync(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOut(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
@@ -4838,12 +4782,6 @@
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.RefreshToken(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.RefreshTokenNew(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
@@ -4852,15 +4790,6 @@
|
||||
<param name="RefreshToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutSingleAsync(System.Int32,System.String,System.Int32)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="ucid"></param>
|
||||
<param name="token"></param>
|
||||
<param name="expires_in"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutSingleAsync(System.String)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
@@ -4888,20 +4817,6 @@
|
||||
</summary>
|
||||
<param name="token"></param>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.Online(System.String)">
|
||||
<summary>
|
||||
单点-在线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.Offline(System.String)">
|
||||
<summary>
|
||||
单点-下线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.Public.OpsService">
|
||||
<summary>
|
||||
ops服务
|
||||
|
||||
@@ -16,74 +16,12 @@ namespace WMS.Web.Core.Help
|
||||
{
|
||||
public class HttpClientHelp
|
||||
{
|
||||
private HttpOptions _options;
|
||||
private ILogger<HttpClientHelp> _logger;
|
||||
|
||||
public HttpClientHelp(IOptions<HttpOptions> options, ILogger<HttpClientHelp> logger)
|
||||
public HttpClientHelp(ILogger<HttpClientHelp> logger)
|
||||
{
|
||||
this._options = options?.Value;
|
||||
this._logger = logger;
|
||||
}
|
||||
public string PostHttp(string url, JsonObject reqData, bool isHaveCookie = false, string cookieValue = "", string appSecret = "")
|
||||
{
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
HMACSHA1 hmacsha1 = new HMACSHA1();
|
||||
if (!string.IsNullOrEmpty(appSecret))
|
||||
{
|
||||
byte[] secret = Encoding.UTF8.GetBytes(appSecret);
|
||||
hmacsha1.Key = secret;
|
||||
}
|
||||
byte[] dataBuffer = Encoding.UTF8.GetBytes(reqData.ToString());
|
||||
byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
|
||||
|
||||
int contentLength = dataBuffer.Length;
|
||||
string rawHmac = Convert.ToBase64String(hashBytes);
|
||||
request.Method = "POST";
|
||||
request.ContentType = "application/json; charset=utf-8";
|
||||
request.ContentLength = contentLength;
|
||||
request.Accept = "application/json; charset=utf-8";
|
||||
request.Headers.Add("Content-Signature", "HMAC-SHA1 " + rawHmac);
|
||||
if (isHaveCookie)
|
||||
{
|
||||
var cook = new Cookie();
|
||||
cook.Domain = _options.Url;
|
||||
cook.Name = "PHPSESSID";
|
||||
cook.Value = cookieValue;
|
||||
request.CookieContainer = new CookieContainer();
|
||||
request.CookieContainer.Add(cook);
|
||||
}
|
||||
|
||||
Stream writer;
|
||||
try
|
||||
{
|
||||
writer = request.GetRequestStream();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
writer = null;
|
||||
Console.WriteLine("链接单点错误异常:" + ex.ToString());
|
||||
}
|
||||
writer.Write(dataBuffer, 0, dataBuffer.Length);
|
||||
writer.Close();
|
||||
|
||||
Stream responseStream;
|
||||
try
|
||||
{
|
||||
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
||||
responseStream = response.GetResponseStream();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responseStream = null;
|
||||
//WriteLog("服务器异常" + ex.Message);
|
||||
}
|
||||
StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
|
||||
|
||||
string respData = streamReader.ReadToEnd();
|
||||
responseStream.Close();
|
||||
return respData;
|
||||
}
|
||||
|
||||
public string PostHttp(string url, LoginAuthorizeRequest reqData)
|
||||
{
|
||||
@@ -202,141 +140,5 @@ namespace WMS.Web.Core.Help
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public string PostHttpNoData(string url, string cookieValue = "")
|
||||
{
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.Method = "POST";
|
||||
request.ContentType = "application/json; charset=utf-8";
|
||||
request.Accept = "application/json; charset=utf-8";
|
||||
if (!string.IsNullOrEmpty(cookieValue))
|
||||
{
|
||||
var cook = new Cookie();
|
||||
cook.Domain = _options.Url;
|
||||
cook.Name = "PHPSESSID";
|
||||
cook.Value = cookieValue;
|
||||
request.CookieContainer = new CookieContainer();
|
||||
request.CookieContainer.Add(cook);
|
||||
}
|
||||
|
||||
Stream writer;
|
||||
try
|
||||
{
|
||||
writer = request.GetRequestStream();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
writer = null;
|
||||
Console.WriteLine("链接单点错误异常:" + ex.ToString());
|
||||
}
|
||||
writer.Close();
|
||||
|
||||
Stream responseStream;
|
||||
try
|
||||
{
|
||||
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
||||
responseStream = response.GetResponseStream();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responseStream = null;
|
||||
//WriteLog("服务器异常" + ex.Message);
|
||||
}
|
||||
StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
|
||||
|
||||
string respData = streamReader.ReadToEnd();
|
||||
responseStream.Close();
|
||||
return respData;
|
||||
}
|
||||
|
||||
public string GetHttp(string url, bool isHaveCookie = false, string cookieValue = "")
|
||||
{
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
HMACSHA1 hmacsha1 = new HMACSHA1();
|
||||
|
||||
request.Method = "Get";
|
||||
request.ContentType = "application/json; charset=utf-8";
|
||||
request.Accept = "application/json; charset=utf-8";
|
||||
if (isHaveCookie)
|
||||
{
|
||||
var cook = new Cookie();
|
||||
cook.Domain = _options.Url;
|
||||
cook.Name = "PHPSESSID";
|
||||
cook.Value = cookieValue;
|
||||
request.CookieContainer = new CookieContainer();
|
||||
request.CookieContainer.Add(cook);
|
||||
}
|
||||
|
||||
Stream writer;
|
||||
try
|
||||
{
|
||||
writer = request.GetRequestStream();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
writer = null;
|
||||
//WriteLog("连接服务器异常");
|
||||
}
|
||||
|
||||
Stream responseStream;
|
||||
try
|
||||
{
|
||||
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
||||
responseStream = response.GetResponseStream();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responseStream = null;
|
||||
//WriteLog("服务器异常" + ex.Message);
|
||||
}
|
||||
StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
|
||||
|
||||
string respData = streamReader.ReadToEnd();
|
||||
responseStream.Close();
|
||||
return respData;
|
||||
}
|
||||
|
||||
|
||||
private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
|
||||
public static long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<JsonValue> Post(string url, string param, string token)
|
||||
{
|
||||
HttpClient _client = new HttpClient();
|
||||
//读取返回消息
|
||||
string res = string.Empty;
|
||||
try
|
||||
{
|
||||
//填充formData
|
||||
if (param == null) param = "";
|
||||
HttpContent hc = new StringContent(param, Encoding.UTF8)
|
||||
{
|
||||
Headers =
|
||||
{
|
||||
ContentType = new MediaTypeHeaderValue("application/json")//application/x-www-form-urlencoded
|
||||
}
|
||||
};
|
||||
_client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
|
||||
var responseMessage = _client.PostAsync(url, hc).Result;
|
||||
var msg = await responseMessage.Content.ReadAsStringAsync();
|
||||
if (msg.Equals(""))
|
||||
return null;
|
||||
else
|
||||
return JsonObject.Parse(msg);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Help
|
||||
{
|
||||
public class HttpOptions
|
||||
{
|
||||
public string Url { get; set; }
|
||||
|
||||
public string K3Url { get; set; }
|
||||
public string K3UrlLogin { get; set; }
|
||||
public bool K3Enable { get; set; } = false;
|
||||
|
||||
public string EspUrl { get; set; }
|
||||
|
||||
public string EspAppId { get; set; }
|
||||
public string EspAppSecret { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -23,13 +23,6 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <returns></returns>
|
||||
Task<AccessTokenDto> CreateToken(UserInfoDto data, LoginTempDto tempDto, string NewToken);
|
||||
|
||||
/// <summary>
|
||||
/// 得到单点用户信息
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> GetUserInfoAsync(string code);
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -45,13 +38,6 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> GetUserInfo(string username, string password);
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> LoginOutAsync(LoginOutDto dto);
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
@@ -59,13 +45,6 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <returns></returns>
|
||||
Task<Result> LoginOut(LoginOutDto dto);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> RefreshToken(string OldToken, string RefreshToken);
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
@@ -74,15 +53,6 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> RefreshTokenNew(string Token, string RefreshToken);
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="ucid"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <param name="expires_in"></param>
|
||||
/// <returns></returns>
|
||||
Task LoginOutSingleAsync(int ucid, string token, int expires_in);
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
@@ -96,19 +66,5 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <param name="authorization"></param>
|
||||
/// <returns></returns>
|
||||
LoginInDto GetLoginInfo(string authorization);
|
||||
|
||||
/// <summary>
|
||||
/// 单点-在线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> Online(string sessionId);
|
||||
|
||||
/// <summary>
|
||||
/// 单点-下线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> Offline(string sessionId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,129 +93,6 @@ namespace WMS.Web.Domain.Services.Public
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到单点用户信息
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result<LoginInDto>> GetUserInfoAsync(string code)
|
||||
{
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("code", code);
|
||||
//这个是登录的时候给前端验证的token,以及传给php单点那边的一个session值,用于单点退出时,通知ops退出
|
||||
string NewToken = Guid.NewGuid().ToString("N");
|
||||
try
|
||||
{
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/access_token", reqData, true, NewToken);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
|
||||
LoginInDto r = new LoginInDto();
|
||||
r.UserInfo = new UserInfoDto();
|
||||
r.TokenInfo = new AccessTokenDto();
|
||||
var login_result = jObject["errno"] == 0 ? "成功" : "失败";
|
||||
_logger.LogInformation($"登录信息:单点->{login_result}");
|
||||
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
string datajson = jObject["data"].ToString();
|
||||
var _loginDto = JsonConvert.DeserializeObject<LoginTempDto>(datajson);
|
||||
|
||||
#region 解码
|
||||
string enptStr = _loginDto.encryptedData;
|
||||
List<string> enptlist = enptStr.Trim().Split(',').ToList();
|
||||
string str = RSA.DecryptSection(_soaOptions.PrivateKey, enptlist);
|
||||
var entity = JsonConvert.DeserializeObject<LoginJsonTokenTempDto>(str);
|
||||
#endregion
|
||||
|
||||
//映射登录信息
|
||||
r.UserInfo = _mapper.Map<UserInfoDto>(entity);
|
||||
_logger.LogInformation($"登录信息:用户ID->{entity.uc_id}");
|
||||
|
||||
//HTTP请求获取登录信息:人员,客户,供应商,公司
|
||||
var loginRequest = new LoginSingleRequest()
|
||||
{
|
||||
UserId = entity.uc_id,
|
||||
SupplierId = entity.supplier_id ?? 0,
|
||||
CustomerId = entity.customer_id ?? 0
|
||||
};
|
||||
var loginResponse_result = await _singleDataService.GetSingleDataNoCache<Result<LoginSingleResponse>, LoginSingleRequest, SingleLoginAction>
|
||||
(loginRequest, SingleLoginAction.All, type: SingleControllerType.Login);
|
||||
|
||||
//绑定返回对象的登录信息
|
||||
var staffName = "Null";
|
||||
var token = await CreateToken(r.UserInfo, _loginDto, NewToken);
|
||||
r.TokenInfo = token;
|
||||
if (loginResponse_result.Success && loginResponse_result.Data != null)
|
||||
{
|
||||
var loginResponse = loginResponse_result.Data;
|
||||
if (loginResponse.Supplier != null)
|
||||
r.UserInfo.SupplierName = loginResponse.Supplier.Name;
|
||||
if (loginResponse.Customer != null)
|
||||
r.UserInfo.CustomerName = loginResponse.Customer.Name;
|
||||
if (loginResponse.Staff != null)
|
||||
{
|
||||
r.UserInfo.StaffId = loginResponse.Staff.Id;
|
||||
staffName = loginResponse.Staff.Name;
|
||||
}
|
||||
if (loginResponse.Company != null)
|
||||
r.UserInfo.CompanyName = loginResponse.Company.Name;
|
||||
}
|
||||
r.UserInfo.UcId = entity.uc_id;
|
||||
r.UserInfo.SeesionId = _loginDto?.uc_sessid;
|
||||
r.UserInfo.CompanyId = entity.company_id.Value;
|
||||
r.UserInfo.Identity = entity.identity;
|
||||
r.UserInfo.OrgId = entity.org_id;
|
||||
r.UserInfo.CustomerId = entity.customer_id;
|
||||
r.UserInfo.SupplierId = entity.supplier_id;
|
||||
r.SignedIn = true;
|
||||
_logger.LogInformation($"登录信息:用户人员信息->{staffName}({r.UserInfo.StaffId}),公司名称->{r.UserInfo.CompanyName}");
|
||||
|
||||
//登录后缓存登录的用户信息和token信息
|
||||
var loginInfo = new LoginInDto();
|
||||
loginInfo.UserInfo = r.UserInfo;
|
||||
loginInfo.TokenInfo = token;
|
||||
|
||||
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||
_redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
|
||||
|
||||
//登录成功移出对应的用户token黑名单:应为新的token产生,移除登录的信息
|
||||
string blacktoken = _redisClientService.GetStringKey($"wms_black_token_{r.UserInfo.UcId}");
|
||||
if (!string.IsNullOrEmpty(blacktoken))
|
||||
{
|
||||
this.RemoveLoginInfo(blacktoken);
|
||||
_redisClientService.RemoveStringKey($"wms_black_token_{r.UserInfo.UcId}");
|
||||
}
|
||||
if (r == null || r.UserInfo == null || r.TokenInfo == null)
|
||||
return Result<LoginInDto>.ReFailure("授权失败,请重新登录", 401);
|
||||
return Result<LoginInDto>.ReSuccess(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
var errno_text = "登陆失败:" + jObject["errmsg"];
|
||||
r.SignedIn = false;
|
||||
string datajson_sessid = jObject["data"]["uc_sessid"];
|
||||
//调用单点的退出接口
|
||||
result = _httpClientHelp.GetHttp(_soaOptions.Url + "/uc/authorize/signin_out", true, cookieValue: datajson_sessid);
|
||||
jObject = JsonObject.Parse(result);
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
_logger.LogInformation("用户信息登录:" + errno_text);
|
||||
return Result<LoginInDto>.ReFailure("拒绝用户证书试图访问此web站点,请与站点管理员联系以建立用户证书权限", 403);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result<LoginInDto>.ReFailure(jObject["errmsg"], jObject["errno"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return Result<LoginInDto>.ReFailure("授权失败,请重新登录", 401);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点登录信息
|
||||
/// </summary>
|
||||
@@ -450,33 +327,6 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> LoginOutAsync(LoginOutDto dto)
|
||||
{
|
||||
_logger.LogInformation("dto_SessionId:" + dto.SessionId);
|
||||
//2.请求PHP单点登出接口
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("access_token", dto.AccessToken);
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url_V3 + "/uc/authorize/signin_out", reqData, true, dto.SessionId);
|
||||
_logger.LogInformation("退出登录返回:" + result);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
//设置本地token的缓存:为黑名单的token做存储
|
||||
await CacheOutToken(dto);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result.ReFailure(BaseResultCodes.UnAuthorized);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
@@ -503,68 +353,6 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<Result<LoginInDto>> RefreshToken(string Token, string RefreshToken)
|
||||
{
|
||||
|
||||
//1.根据旧token 找到登录对象
|
||||
var loginInfo = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{Token}");
|
||||
//2.请求PHP单点登出接口
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("refresh_token", RefreshToken);
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/refresh_token", reqData, true, Token);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
|
||||
LoginInDto r = new LoginInDto();
|
||||
r.UserInfo = new UserInfoDto();
|
||||
r.TokenInfo = new AccessTokenDto();
|
||||
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
string datajson = jObject["data"].ToString();
|
||||
var _loginDto = JsonConvert.DeserializeObject<LoginTempDto>(datajson);
|
||||
r.UserInfo = loginInfo.UserInfo;
|
||||
r.SignedIn = true;
|
||||
var token = await CreateToken(loginInfo.UserInfo, _loginDto, Token);
|
||||
r.TokenInfo = token;
|
||||
loginInfo.TokenInfo = token;
|
||||
_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-1>" + token.Expired.ToString());
|
||||
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||
_redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
|
||||
_logger.LogInformation("RefreshToken:我在刷新登录:刷新后的过期时间-小时->" + ops_login_time.Hours);
|
||||
return Result<LoginInDto>.ReSuccess(r);
|
||||
}
|
||||
//else if (jObject["code"] == 0)
|
||||
//{
|
||||
// string datajson = jObject["data"].ToString();
|
||||
// var _loginDto = JsonConvert.DeserializeObject<LoginTempV2Dto>(datajson);
|
||||
|
||||
// r.UserInfo = loginInfo.UserInfo;
|
||||
// r.SignedIn = true;
|
||||
// var token = await CreateToken(loginInfo.UserInfo, _loginDto, Token);
|
||||
// r.TokenInfo = token;
|
||||
// loginInfo.TokenInfo = token;
|
||||
|
||||
// var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||
// _redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
|
||||
// return Result<LoginInDto>.ReSuccess(r);
|
||||
//}
|
||||
else
|
||||
{
|
||||
//失败了1:就把登录的token清除 2: ucid添加到黑名单
|
||||
var time = new TimeSpan(r.TokenInfo.Expired.Day, r.TokenInfo.Expired.Hour, r.TokenInfo.Expired.Minute, r.TokenInfo.Expired.Second, r.TokenInfo.Expired.Millisecond);
|
||||
_redisClientService.SetStringKey($"wms_black_token_{r.UserInfo.UcId}", r.TokenInfo.Token, time);
|
||||
this.RemoveLoginInfo(r.TokenInfo.Token);
|
||||
r.SignedIn = false;
|
||||
return Result<LoginInDto>.ReFailure(jObject["errmsg"], jObject["errno"]);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
@@ -616,28 +404,6 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="ucid"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <param name="expires_in"></param>
|
||||
/// <returns></returns>
|
||||
public async Task LoginOutSingleAsync(int ucid, string token, int expires_in)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
var cache_token = _redisClientService.GetStringKey($"wms_black_token_{ucid}");
|
||||
if (string.IsNullOrEmpty(cache_token))
|
||||
{
|
||||
DateTime expires_time = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)).AddSeconds(expires_in);
|
||||
var time = new TimeSpan(expires_time.Day, expires_time.Hour, expires_time.Minute, expires_time.Second, expires_time.Millisecond);
|
||||
_redisClientService.SetStringKey($"wms_black_token_{ucid}", token, time);
|
||||
this.RemoveLoginInfo(token);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
@@ -712,29 +478,5 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点-在线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Online(string sessionId)
|
||||
{
|
||||
var request = new { PHPSESSID = sessionId };
|
||||
string result = _httpClientHelp.PostHttpNoData(_soaOptions.Url + "/uc/user/online.html?app_id=" + _soaOptions.AppId, sessionId);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点-下线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Offline(string sessionId)
|
||||
{
|
||||
var request = new { PHPSESSID = sessionId };
|
||||
string result = _httpClientHelp.PostHttpNoData(_soaOptions.Url + "/uc/user/offline.html?app_id=" + _soaOptions.AppId, sessionId);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,8 +171,6 @@ namespace WMS.Web.Repositories.DependencyInjection
|
||||
Services.Configure<AppOptions>(Configuration.GetSection("AppOptions"));
|
||||
Services.AddOptions<SoaOptions>();
|
||||
Services.Configure<SoaOptions>(Configuration.GetSection("SoaOptions"));
|
||||
Services.AddOptions<HttpOptions>();
|
||||
Services.Configure<HttpOptions>(Configuration.GetSection("HttpOptions"));
|
||||
Services.AddOptions<ErpOptions>();
|
||||
Services.Configure<ErpOptions>(Configuration.GetSection("ErpOptions"));
|
||||
Services.AddOptions<OpsOptions>();
|
||||
|
||||
Reference in New Issue
Block a user