liaoxujun@qq.com
2023-08-21 f8fbf1db4df0d59c3387980cd46811de6359131b
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,12 +33,37 @@
         }
        /// <summary>
        /// 登录 1 输入员工账户或者租户账户,2 选择租户账户,3 选择公司
        /// 当密码为空时,带入用户中心token即可实现登录
        /// </summary>
        /// <returns>登录信息</returns>
        [HttpPost("LogoIn")]
        public async Task<RetLoginVM> LogoIn (LoginPsWordIN Parma)
        {
            //zctok校验成功是否标志
            bool IsTokenPass=false;
               if(string.IsNullOrEmpty(Parma.PassWord))
            {
                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("用户名错误");
            }
              bool needtoken=false;
            if (Parma.TenantId==null)
            {
                //如果还没确定租户ID 需要先确定租户ID
@@ -44,10 +74,14 @@
                    case 0:
                        throw Oops.Oh($"账户或者密码错误");
                    case 1:
                        if (!needtoken)
                        {
                         needtoken = await _userService.CheckPsw(Tender[0].TenderId, Tender[0].EmployeeID,Parma.PassWord);
                       
                        if(!needtoken)
                            throw Oops.Oh($"账户或者密码错误");
                        }
                        Parma.TenantId = Tender[0].TenderId;
                        Parma.employeeID = Tender[0].EmployeeID;
@@ -130,10 +164,13 @@
                {
                    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,
@@ -151,11 +188,18 @@
            throw Oops.Oh($"参数错误");
        }
        
        /// <summary>
        /// 获取公司列表
        /// </summary>