From bbf08bfe0214965e7de798e13ac46efbcc11a73b Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Fri, 7 Apr 2023 16:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9PDA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appsettings.json | 2 + .../TokenService.cs | 3 +- .../Controllers/Accounts/AccountController.cs | 80 +++++++++++++++++-- .../SfsCrudWithDetailsAppServiceBase.cs | 5 ++ .../settings/appsettings.Development.json | 14 ++-- 5 files changed, 90 insertions(+), 14 deletions(-) diff --git a/be/DataExchange/host/Win_in.Sfs.Wms.DataExchange.HttpApi.Host/appsettings.json b/be/DataExchange/host/Win_in.Sfs.Wms.DataExchange.HttpApi.Host/appsettings.json index afc0f3f0e..bfabf4e68 100644 --- a/be/DataExchange/host/Win_in.Sfs.Wms.DataExchange.HttpApi.Host/appsettings.json +++ b/be/DataExchange/host/Win_in.Sfs.Wms.DataExchange.HttpApi.Host/appsettings.json @@ -46,6 +46,8 @@ "StringEncryption": { "DefaultPassPhrase": "8fFOYxuru0qm2ATJ" }, + + //业务 "Sites": "T8,T9", "Company": "T8,T9" } diff --git a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs index b2a84587a..c22fde641 100644 --- a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs +++ b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs @@ -15,8 +15,9 @@ namespace Win_in.Sfs.Auth.Tokens; public class TokenService : ApplicationService { private readonly IHttpClientFactory _httpClientFactory; - private readonly IConfiguration _configuration; private readonly ILogger _logger; + private readonly IConfiguration _configuration; + public TokenService(IHttpClientFactory httpClientFactory, IConfiguration configuration, ILogger logger) { diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Accounts/AccountController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Accounts/AccountController.cs index 57f3f8604..dbaf0e54a 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Accounts/AccountController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Accounts/AccountController.cs @@ -1,8 +1,15 @@ +using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Net.Http; using System.Threading.Tasks; +using DocumentFormat.OpenXml.Drawing.Charts; +using IdentityModel.Client; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Mvc; using Win_in.Sfs.Auth.Application.Contracts; @@ -26,6 +33,9 @@ public class AccountController : AbpController private readonly ITokenService _tokenService; private readonly IUserMenuAppService _userMenuAppService; private readonly IUserWorkGroupAppService _userWorkGroupAppService; + private readonly IConfiguration _configuration; + private readonly IHttpClientFactory _httpClientFactory; + private readonly ILogger _logger; /// /// @@ -38,12 +48,27 @@ public class AccountController : AbpController , ITokenService tokenService , IUserMenuAppService userMenuAppService , IUserWorkGroupAppService userWorkGroupAppService - ) + , IConfiguration configuration, IHttpClientFactory httpClientFactory, ILogger logger) { _profileAppService = profileAppService; _tokenService = tokenService; _userMenuAppService = userMenuAppService; _userWorkGroupAppService = userWorkGroupAppService; + _configuration = configuration; + _httpClientFactory = httpClientFactory; + _logger = logger; + } + + [Display] + public class LoginModel + { + [Display] + [Required] + public string UserName { get; set; } + + [Display] + [Required] + public string Password { get; set; } } /// @@ -55,8 +80,51 @@ public class AccountController : AbpController public virtual async Task LoginAsync(UserLoginInput userLoginInput) { - var token = await _tokenService.GetTokenAsync(userLoginInput.Username, userLoginInput.Password).ConfigureAwait(false); - return token; + var address = _configuration["AuthServer:Authority"]; + var request = new DiscoveryDocumentRequest + { + Address = address, + Policy = new DiscoveryPolicy { RequireHttps = false } + }; + var discovery = await _httpClientFactory.CreateClient().GetDiscoveryDocumentAsync(request).ConfigureAwait(false); + var clientId = _configuration["AuthServer:ClientId"]; + var clientSecret = _configuration["AuthServer:ClientSecret"]; + this._logger.LogInformation($"address:{address},TokenEndpoint:{discovery.TokenEndpoint},clientId:{clientId},clientSecret:{clientSecret}"); + var result = await _httpClientFactory.CreateClient().RequestPasswordTokenAsync(new PasswordTokenRequest + { + Address = $"{address.TrimEnd('/')}/connect/token", + GrantType = "password", + ClientId = clientId, + ClientSecret = clientSecret, + UserName = userLoginInput.Username, + Password = userLoginInput.Password + }).ConfigureAwait(false); + Console.WriteLine($"Result:${(result.IsError ? result.ErrorDescription : result.AccessToken)}"); + + return new BaererToken() + { + refresh_token = result.RefreshToken, + access_token = result.AccessToken, + scope = result.Scope, + token_type = result.TokenType, + expires_in = result.ExpiresIn, + }; + + //return new JsonResult(new + //{ + // result.TokenType, + // result.AccessToken, + // result.ExpiresIn, + // result.RefreshToken, + // result.Scope, + // result.HttpStatusCode, + // result.Error, + // result.HttpErrorReason, + // result.ErrorDescription, + // result.ErrorType, + // result.Exception?.Message, + // Exception = result.Exception?.ToString() + //}); } /// @@ -95,10 +163,10 @@ public class AccountController : AbpController /// 菜单 /// /// - [HttpGet("menus")] - public virtual async Task> GetMenusAsync() + [HttpGet("menus/{userId}")] + public virtual async Task> GetMenusAsync(Guid userId) { - var userId = CurrentUser.Id; + //var userId = CurrentUser.Id; var pdaMenuGroupDtos = new List();//返回给pda的菜单 已排序 var menusOfUser = await _userMenuAppService.GetPdaMenusOfUserAsync(userId).ConfigureAwait(false); var menuGroups = menusOfUser.GroupBy(p => p.GroupName); diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs index fd024bfd3..0e4832191 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs @@ -23,6 +23,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Microsoft.Net.Http.Headers; +using Omu.ValueInjecter.Utils; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -753,6 +754,10 @@ public abstract class SfsCrudWithDetailsAppServiceBase p.Name == "Worker"); + first.SetValue(first, CurrentUser.GetUserName()); + var hasEntity = entity != null; if (entity == null) { diff --git a/build/src/docker/publish/conf/settings/appsettings.Development.json b/build/src/docker/publish/conf/settings/appsettings.Development.json index 30b0a75ba..38d969c76 100644 --- a/build/src/docker/publish/conf/settings/appsettings.Development.json +++ b/build/src/docker/publish/conf/settings/appsettings.Development.json @@ -1,5 +1,5 @@ { - "AlwaysAllowAuthorization": "False", + "AlwaysAllowAuthorization": "True", "App": { "CorsOrigins": [ "http://localhost:59080", @@ -110,16 +110,16 @@ }, "RemoteServices": { "Auth": { - "BaseUrl": "http://localhost:21293/" + "BaseUrl": "http://dev.ccwin-in.com:21293/" }, "BaseData": { - "BaseUrl": "http://localhost:21294/" + "BaseUrl": "http://dev.ccwin-in.com:21294/" }, "Default": { - "BaseUrl": "http://localhost:21293/" + "BaseUrl": "http://dev.ccwin-in.com:21293/" }, "FileStorage": { - "BaseUrl": "http://localhost:21292/" + "BaseUrl": "http://dev.ccwin-in.com:21292/" }, "Inventory": { "BaseUrl": "http://localhost:59095/" @@ -128,10 +128,10 @@ "BaseUrl": "http://localhost:59095/" }, "Label": { - "BaseUrl": "http://localhost:21292/" + "BaseUrl": "http://dev.ccwin-in.com:21292/" }, "Message": { - "BaseUrl": "http://localhost:21292/" + "BaseUrl": "http://dev.ccwin-in.com:21292/" }, "Store": { "BaseUrl": "http://localhost:59095/"