gpt4 book ai didi

c# - SignalR accessTokenFactory 不将 token 传递给请求查询字符串

转载 作者:行者123 更新时间:2023-12-05 07:23:28 33 4
gpt4 key购买 nike

我正在尝试通过查询字符串访问 SignalRHub 类上的 token 。这是客户端代码:

const connection = new signalR.HubConnectionBuilder()
.withUrl($("#url").val(), {
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets,
accessTokenFactory: () => {
token
}
})
.configureLogging(signalR.LogLevel.Trace)
.build();

Jwt 配置:

OnMessageReceived = context =>
{
var accessToken = context.Request.Query["access_token"];
var path = context.HttpContext.Request.Path.Value;

if (!string.IsNullOrEmpty(accessToken) && (path.Equals("/websocket"))
{
context.Token = accessToken;
}
return Task.CompletedTask;
}

问题是当我向中心发出请求时,accessToken 为空,即使我通过 accessTokenFactory 传递它也是如此。没有查询字符串参数“access_token”。代码是在 docs guide 之后制作的.我已经尝试在启动时更改我的中间件调用但没有解决。

启动文件:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddSessionStateTempDataProvider();

/*aditional configurations*/

services.AddSignalR();

/*more aditional configurations*/

}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors(options =>
{
options.WithExposedHeaders("Location");
options.AllowAnyOrigin();
options.AllowAnyHeader();
options.AllowAnyMethod();
options.AllowCredentials();
});

app.UseSignalR(routes =>
{
routes.MapHub<SignalRHub>("/websocket");
});

app.UseAuthentication();

app.UseMvc(routes =>
{
routes.MapRoute("api", "{controller}/{action}/{id}");
});

/*aditional middlewares*/

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor |
ForwardedHeaders.XForwardedProto
});

}

我们将不胜感激

最佳答案

看起来您实际上并没有在 accessTokenFactory 实现中提供 token 。您需要返回 token 值,否则您的 HubConnection 将无法获取它

accessTokenFactory: () => {
return token
}

关于c# - SignalR accessTokenFactory 不将 token 传递给请求查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56011670/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com