From c149c7b54b754538709117bd0f9349e8acabfd92 Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期一, 28 八月 2023 09:27:30 +0800
Subject: [PATCH] 资料管理数据库sql
---
DocumentServiceAPI.Application/UserAndLogin/LogInController.cs | 236 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 140 insertions(+), 96 deletions(-)
diff --git a/DocumentServiceAPI.Application/UserAndLogin/LogInController.cs b/DocumentServiceAPI.Application/UserAndLogin/LogInController.cs
index 3478ee1..2eed030 100644
--- a/DocumentServiceAPI.Application/UserAndLogin/LogInController.cs
+++ b/DocumentServiceAPI.Application/UserAndLogin/LogInController.cs
@@ -3,9 +3,14 @@
using DocumentServiceAPI.Utility;
using Furion.DynamicApiController;
using Furion.JsonSerialization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.IdentityModel.Tokens;
+using NetTaste;
+using Newtonsoft.Json.Linq;
using Swashbuckle.AspNetCore.Annotations;
using System;
using System.Collections.Generic;
+using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -28,133 +33,172 @@
}
/// <summary>
/// 鐧诲綍 1 杈撳叆鍛樺伐璐︽埛鎴栬�呯鎴疯处鎴凤紝2 閫夋嫨绉熸埛璐︽埛锛�3 閫夋嫨鍏徃
+ /// 褰撳瘑鐮佷负绌烘椂锛屽甫鍏ョ敤鎴蜂腑蹇僼oken鍗冲彲瀹炵幇鐧诲綍
/// </summary>
/// <returns>鐧诲綍淇℃伅</returns>
[HttpPost("LogoIn")]
- public async Task<RetLoginVM> LogoIn (LoginPsWordIN Parma)
+ public async Task<RetLoginVM> LogoIn ( LoginPsWordIN Parma)
{
- bool needtoken=false;
- if (Parma.TenantId==null)
+ //zctok鏍¢獙鎴愬姛鏄惁鏍囧織
+ bool IsTokenPass=false;
+
+ if(string.IsNullOrEmpty(Parma.PassWord))
{
- //濡傛灉杩樻病纭畾绉熸埛ID 闇�瑕佸厛纭畾绉熸埛ID
- List<TenderVM>Tender = await _userService.GetUserTenderList(Parma.ITCode);
-
- switch (Tender.Count)
+
+ var Request = App.HttpContext.Request;
+ string stoken = Request.Headers["Authorization"];
+ if (stoken == null)
+ throw Oops.Oh("娌℃湁杈撳叆瀵嗙爜");
+ stoken = stoken.Replace("Bearer ", "");
+
+ var isvale = _tokenService.CheckJwt(stoken, out SecurityToken securityToken);
+ JwtSecurityToken jwtToken = securityToken as JwtSecurityToken;
+ string itcode = jwtToken.Claims.FirstOrDefault(claim => claim.Type == "sub")?.Value;
+ if (isvale == false)
+ throw Oops.Oh("鐧诲綍淇℃伅鍑洪敊");
+ if(Parma.ITCode!= itcode)
+ throw Oops.Oh("鐢ㄦ埛鍚嶉敊璇�");
+ IsTokenPass=true;
+
+ }
+
+ bool needtoken = false;
+
+ if (Parma.TenantId == null)
{
- case 0:
- throw Oops.Oh($"璐︽埛鎴栬�呭瘑鐮侀敊璇�");
- case 1:
- needtoken = await _userService.CheckPsw(Tender[0].TenderId, Tender[0].EmployeeID,Parma.PassWord);
-
- if(!needtoken)
+ //濡傛灉杩樻病纭畾绉熸埛ID 闇�瑕佸厛纭畾绉熸埛ID
+ List<TenderVM> Tender = await _userService.GetUserTenderList(Parma.ITCode);
+
+ switch (Tender.Count)
+ {
+ case 0:
throw Oops.Oh($"璐︽埛鎴栬�呭瘑鐮侀敊璇�");
-
- Parma.TenantId = Tender[0].TenderId;
- Parma.employeeID = Tender[0].EmployeeID;
- if (Parma.UnitID == null)
+ case 1:
+ if (!needtoken)
{
-
- List<UnitVM> Units = await _userService.GetUserUnitList(Parma.TenantId ?? 0);
- if (Units.Count == 0)
- {
- //娌℃湁鍏徃
- needtoken = true;
- }
- else if (Units.Count == 1)
- {
- Parma.UnitID = Units[0].UnitID;
- needtoken = true;
- }
- else
- {
- //鍏朵粬闇�瑕佺敤鎴烽�夋嫨绉熸埛
- return new RetLoginVM
- {
- NeedNext = true,
- Units = Units,
+ needtoken = await _userService.CheckPsw(Tender[0].TenderId, Tender[0].EmployeeID, Parma.PassWord);
- };
- }
+ if (!needtoken)
+ throw Oops.Oh($"璐︽埛鎴栬�呭瘑鐮侀敊璇�");
}
-
- break;
-
- default:
+
+
+ Parma.TenantId = Tender[0].TenderId;
+ Parma.employeeID = Tender[0].EmployeeID;
+ if (Parma.UnitID == null)
+ {
+
+ List<UnitVM> Units = await _userService.GetUserUnitList(Parma.TenantId ?? 0);
+ if (Units.Count == 0)
+ {
+ //娌℃湁鍏徃
+ needtoken = true;
+ }
+ else if (Units.Count == 1)
+ {
+ Parma.UnitID = Units[0].UnitID;
+ needtoken = true;
+ }
+ else
+ {
+ //鍏朵粬闇�瑕佺敤鎴烽�夋嫨绉熸埛
+ return new RetLoginVM
+ {
+ NeedNext = true,
+ Units = Units,
+
+ };
+ }
+ }
+
+ break;
+
+ default:
+ //鍏朵粬闇�瑕佺敤鎴烽�夋嫨绉熸埛
+ return new RetLoginVM
+ {
+ NeedNext = true,
+ Tenants = Tender,
+
+ };
+
+
+ }
+
+
+
+
+
+ }
+ else if (Parma.UnitID == null)
+ {
+
+ var Units = await _userService.GetUserUnitList(Parma.TenantId ?? 0);
+ if (Units.Count == 0)
+ {
+ //娌℃湁鍏徃
+ needtoken = true;
+ }
+ else if (Units.Count == 1) {
+ Parma.UnitID = Units[0].UnitID;
+ needtoken = true;
+ }
+ else
+ {
//鍏朵粬闇�瑕佺敤鎴烽�夋嫨绉熸埛
return new RetLoginVM
{
NeedNext = true,
- Tenants = Tender,
+ Units = Units,
};
+ }
-
}
-
-
-
-
- }
- else if(Parma.UnitID==null)
- {
-
- var Units = await _userService.GetUserUnitList(Parma.TenantId??0);
- if(Units.Count==0)
+ if (needtoken || Parma.UnitID != null)
{
- //娌℃湁鍏徃
- needtoken = true;
- }
- else if (Units.Count==1) {
- Parma.UnitID= Units[0].UnitID;
- needtoken = true;
- }
- else
+
+ TenderVM Tender = (await _userService.GetUserTenderList(Parma.ITCode)).Where(x => x.TenderId == Parma.TenantId && x.EmployeeID == Parma.employeeID).SingleOrDefault();
+ if (Tender == null)
+ {
+ throw Oops.Oh($"璐︽埛瀵嗙爜鎴栬�呯鎴烽�夋嫨閿欒");
+ }
+ if (!IsTokenPass)
{
- //鍏朵粬闇�瑕佺敤鎴烽�夋嫨绉熸埛
+ needtoken = await _userService.CheckPsw(Tender.TenderId, Tender.EmployeeID, Parma.PassWord);
+
+ if (!needtoken)
+ throw Oops.Oh($"璐︽埛鎴栬�呭瘑鐮侀敊璇�");
+ }
+ var token = _tokenService.CreateToken(new Model.JwtInfo
+ {
+ EID = Tender.EmployeeID,
+ LogInSource = Parma.Form,
+ TEID = Tender.TenderId,
+ UID = Parma.UnitID,
+ });
return new RetLoginVM
{
- NeedNext = true,
- Units = Units,
+ NeedNext = false,
+ Token = token,
};
}
-
- }
-
- if(needtoken|| Parma.UnitID!=null)
- {
-
- TenderVM Tender = (await _userService.GetUserTenderList(Parma.ITCode)).Where(x=>x.TenderId==Parma.TenantId&&x.EmployeeID==Parma.employeeID).SingleOrDefault();
- if(Tender==null)
- {
- throw Oops.Oh($"璐︽埛瀵嗙爜鎴栬�呯鎴烽�夋嫨閿欒");
- }
- needtoken = await _userService.CheckPsw(Tender. TenderId, Tender.EmployeeID, Parma.PassWord);
-
- if (!needtoken)
- throw Oops.Oh($"璐︽埛鎴栬�呭瘑鐮侀敊璇�");
- var token= _tokenService.CreateToken(new Model.JwtInfo
- {
- EID = Tender.EmployeeID,
- LogInSource = Parma.Form,
- TEID = Tender.TenderId,
- UID = Parma.UnitID,
- });
- return new RetLoginVM
- {
- NeedNext = false,
- Token = token,
-
- };
- }
- throw Oops.Oh($"鍙傛暟閿欒");
+ throw Oops.Oh($"鍙傛暟閿欒");
+
+
+
}
-
+
+
+
+
+
/// <summary>
/// 鑾峰彇鍏徃鍒楄〃
--
Gitblit v1.9.1