SignalR 在服务器上获取承载令牌
SignalR get bearer token on Server
对于一个项目,我有一个 C# asp.net 核心服务器和一个 Angular 网络客户端应用程序。我在不记名令牌上关注 SignalR documentation。它指出,为了提供身份验证令牌,您可以按如下方式传递它(文档的复制粘贴)。
let connection = new signalR.HubConnectionBuilder()
.withUrl("/chathub", {
accessTokenFactory: () => {
// Get and return the access token.
// This function can return a JavaScript Promise if asynchronous
// logic is required to retrieve the access token.
}
})
.build();
但是现在,我想在我的 C# 服务器上提取这个特定的令牌。问题是,我无法在任何地方找到它。当用户在方法 public override async Task OnConnectedAsync()
中连接或用户自己调用方法时,仅提供类型 HubCallerContext
的 Context
。但是这个 Context
不提供给定的身份验证令牌。我该如何提取它?
据我所知,如果你想通过hub方式获取token,可以参考下面的代码获取。
var accessToken = Context.GetHttpContext().Request.Query["access_token"];
对于一个项目,我有一个 C# asp.net 核心服务器和一个 Angular 网络客户端应用程序。我在不记名令牌上关注 SignalR documentation。它指出,为了提供身份验证令牌,您可以按如下方式传递它(文档的复制粘贴)。
let connection = new signalR.HubConnectionBuilder()
.withUrl("/chathub", {
accessTokenFactory: () => {
// Get and return the access token.
// This function can return a JavaScript Promise if asynchronous
// logic is required to retrieve the access token.
}
})
.build();
但是现在,我想在我的 C# 服务器上提取这个特定的令牌。问题是,我无法在任何地方找到它。当用户在方法 public override async Task OnConnectedAsync()
中连接或用户自己调用方法时,仅提供类型 HubCallerContext
的 Context
。但是这个 Context
不提供给定的身份验证令牌。我该如何提取它?
据我所知,如果你想通过hub方式获取token,可以参考下面的代码获取。
var accessToken = Context.GetHttpContext().Request.Query["access_token"];