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");
});
}