From 6c2b4bc56ff91f97c240a1729cdf8ac2e9578d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Mon, 28 Feb 2022 18:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0signalR=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5jwt=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/Hubs/MessageHub.cs | 10 ++++------ ZR.Admin.WebApi/Startup.cs | 12 ++++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ZR.Admin.WebApi/Hubs/MessageHub.cs b/ZR.Admin.WebApi/Hubs/MessageHub.cs index 49451fc..9976156 100644 --- a/ZR.Admin.WebApi/Hubs/MessageHub.cs +++ b/ZR.Admin.WebApi/Hubs/MessageHub.cs @@ -11,7 +11,6 @@ using ZR.Model; namespace ZR.Admin.WebApi.Hubs { - [Verify] public class MessageHub : Hub { //创建用户集合,用于存储所有链接的用户数据 @@ -25,14 +24,14 @@ namespace ZR.Admin.WebApi.Hubs /// public override Task OnConnectedAsync() { - //name 获取不到有待研究 var name = Context.User.Identity.Name; + var user = clientUsers.Any(u => u.ConnnectionId == Context.ConnectionId); //判断用户是否存在,否则添加集合 - if (!user) + if (!user && Context.User.Identity.IsAuthenticated) { - clientUsers.Add(new OnlineUsers(Context.ConnectionId, Context.User.Identity.Name)); - Console.WriteLine($"{DateTime.Now}:{Context.User.Identity.Name},{Context.ConnectionId}连接服务端success,当前已连接{clientUsers.Count}个"); + clientUsers.Add(new OnlineUsers(Context.ConnectionId, name)); + Console.WriteLine($"{DateTime.Now}:{name},{Context.ConnectionId}连接服务端success,当前已连接{clientUsers.Count}个"); } Clients.All.SendAsync("onlineNum", clientUsers.Count); @@ -51,7 +50,6 @@ namespace ZR.Admin.WebApi.Hubs { Console.WriteLine($"用户{user?.Name}离开了,当前已连接{clientUsers.Count}个"); clientUsers.Remove(user); - Clients.All.SendAsync("onlineNum", clientUsers.Count); } return base.OnDisconnectedAsync(exception); diff --git a/ZR.Admin.WebApi/Startup.cs b/ZR.Admin.WebApi/Startup.cs index 82887e2..5d714c2 100644 --- a/ZR.Admin.WebApi/Startup.cs +++ b/ZR.Admin.WebApi/Startup.cs @@ -62,7 +62,7 @@ namespace ZR.Admin.WebApi //Model services.Configure(Configuration); - //Cookie ֤ + //jwt ֤ services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; @@ -100,6 +100,10 @@ namespace ZR.Admin.WebApi app.Use((context, next) => { context.Request.EnableBuffering(); + if (context.Request.Query.TryGetValue("access_token", out var token)) + { + context.Request.Headers.Add("Authorization", $"Bearer {token}"); + } return next(); }); //ʾ̬ļ/wwwrootĿ¼ļҪUseRoutingǰ @@ -126,12 +130,12 @@ namespace ZR.Admin.WebApi app.UseEndpoints(endpoints => { + //socket + endpoints.MapHub("/msgHub"); + endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); - - //socket - endpoints.MapHub("/msgHub"); }); }