diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs index 3c0e9a1d..ffce9318 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs @@ -16,7 +16,8 @@ namespace CompanyName.ProjectName.Pages private readonly ILogger _logger; private readonly IHostEnvironment _hostEnvironment; - public Login(IAccountAppService accountAppService, ILogger logger, IHostEnvironment hostEnvironment) + public Login(IAccountAppService accountAppService, ILogger logger, + IHostEnvironment hostEnvironment) { _accountAppService = accountAppService; _logger = logger; @@ -26,7 +27,7 @@ namespace CompanyName.ProjectName.Pages public void OnGet() { } - + public async Task OnPost() { string userName = Request.Form["userName"]; @@ -44,16 +45,15 @@ namespace CompanyName.ProjectName.Pages SameSite = SameSiteMode.Unspecified, }; - if (!_hostEnvironment.IsDevelopment()) - { - // 设置cookies domain - options.Domain = "ProjectName.cn"; - } - + // 设置cookies domain + //options.Domain = "ProjectName.cn"; + + var result = await _accountAppService.LoginAsync(new LoginInput() { Name = userName, Password = password }); - Response.Cookies.Append(ProjectNameHttpApiHostConsts.DefaultCookieName, result.Token,options); + Response.Cookies.Append(ProjectNameHttpApiHostConsts.DefaultCookieName, + result.Token, options); } catch (Exception e) { diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs index 412b9e47..78397470 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs @@ -21,6 +21,7 @@ using Swashbuckle.AspNetCore.SwaggerUI; using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text; using System.Threading.Tasks; using CompanyName.ProjectName.CAP; @@ -61,7 +62,6 @@ namespace CompanyName.ProjectName )] public class ProjectNameHttpApiHostModule : AbpModule { - public override void OnPostApplicationInitialization( ApplicationInitializationContext context) { @@ -114,7 +114,7 @@ namespace CompanyName.ProjectName opts.EnrichDiagnosticContext = SerilogToEsExtensions.EnrichFromRequest; }); app.UseUnitOfWork(); - + app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); }); app.UseHangfireDashboard("/hangfire", new DashboardOptions() { @@ -187,31 +187,38 @@ namespace CompanyName.ProjectName OnMessageReceived = currentContext => { var path = currentContext.HttpContext.Request.Path; - if (!path.StartsWithSegments("/login")) + if (path.StartsWithSegments("/login")) { - var accessToken = - currentContext.Request.Cookies[ - ProjectNameHttpApiHostConsts.DefaultCookieName] ; - - if (!accessToken.IsNullOrWhiteSpace()) - { - if (path.StartsWithSegments("/signalr")) - { - currentContext.Token = accessToken; - } - - currentContext.Request.Headers.Add("Authorization", - $"Bearer {accessToken}"); - - // 如果请求来自hangfire 或者cap - if (path.ToString().StartsWith("/hangfire") || - path.ToString().StartsWith("/cap")) - { - currentContext.HttpContext.Response.Headers.Remove( - "X-Frame-Options"); - currentContext.Token = !string.IsNullOrEmpty(accessToken) ? accessToken : accessToken; - } - } + return Task.CompletedTask; + } + + var accessToken = + currentContext.Request.Query["access_token"].FirstOrDefault() ?? + currentContext.Request.Cookies[ + ProjectNameHttpApiHostConsts.DefaultCookieName]; + + if (!accessToken.IsNullOrWhiteSpace()) + { + return Task.CompletedTask; + } + + if (path.StartsWithSegments("/signalr")) + { + currentContext.Token = accessToken; + } + + currentContext.Request.Headers.Add("Authorization", + $"Bearer {accessToken}"); + + // 如果请求来自hangfire 或者cap + if (path.ToString().StartsWith("/hangfire") || + path.ToString().StartsWith("/cap")) + { + currentContext.HttpContext.Response.Headers.Remove( + "X-Frame-Options"); + currentContext.Token = !string.IsNullOrEmpty(accessToken) + ? accessToken + : accessToken; } diff --git a/vben271/.env.development b/vben271/.env.development index dd597682..0b964f71 100644 --- a/vben271/.env.development +++ b/vben271/.env.development @@ -30,4 +30,5 @@ VITE_AUTH_URL= http://localhost:44354 VITE_API_URL= http://localhost:44314/gateway -VITE_WEBSOCKE_URL= http://localhost:44314 \ No newline at end of file +# WEBSOCKE 地址 +VITE_WEBSOCKE_URL= http://localhost:44314/ws \ No newline at end of file diff --git a/vben271/.env.production b/vben271/.env.production index c6aec053..855fd42f 100644 --- a/vben271/.env.production +++ b/vben271/.env.production @@ -36,8 +36,11 @@ VITE_LEGACY = false # 认证授权服务器地址 -VITE_AUTH_URL='http://120.24.194.14:8013' +VITE_AUTH_URL= http://localhost:44354 # 接口地址 -VITE_API_URL= http://120.24.194.14:8011 +VITE_API_URL= http://localhost:44314/gateway + +# WEBSOCKE 地址 +VITE_WEBSOCKE_URL= http://localhost:44314/ws diff --git a/vben271/package.json b/vben271/package.json index 2ea95473..6de8973b 100644 --- a/vben271/package.json +++ b/vben271/package.json @@ -118,7 +118,7 @@ "ts-jest": "^27.0.4", "ts-node": "^10.2.0", "typescript": "4.3.5", - "vite": "2.5.9", + "vite": "2.6.14", "vite-plugin-compression": "^0.3.3", "vite-plugin-html": "^2.0.7", "vite-plugin-imagemin": "^0.4.3", diff --git a/vben271/src/hooks/web/useSignalR.ts b/vben271/src/hooks/web/useSignalR.ts index 54542f34..a202ebc8 100644 --- a/vben271/src/hooks/web/useSignalR.ts +++ b/vben271/src/hooks/web/useSignalR.ts @@ -22,7 +22,7 @@ export function useSignalR() { const userStore = useUserStoreWithOut(); const token = userStore.getToken; - const url = (import.meta.env.VITE_WEBSOCKE_URL as string) + '/ws/signalr/notification'; + const url = (import.meta.env.VITE_WEBSOCKE_URL as string) + '/signalr/notification'; const connection = new signalR.HubConnectionBuilder() .withUrl(url, { accessTokenFactory: () => token, diff --git a/vben271/src/views/admin/roles/PermissionAbpRole.vue b/vben271/src/views/admin/roles/PermissionAbpRole.vue index 07313a32..8eaa388b 100644 --- a/vben271/src/views/admin/roles/PermissionAbpRole.vue +++ b/vben271/src/views/admin/roles/PermissionAbpRole.vue @@ -92,7 +92,9 @@ request.providerName = 'R'; request.providerKey = roleName; const { checked } = toRaw(getTree().getCheckedKeys()) as []; - + if (checked == undefined) { + return; + } const noSelectedPermissions = totalRolePermissionsRef.filter((e) => { return !(checked.indexOf(e) > -1); });