尝试使用功能键(AuthorizationLevel.Function)保护我的天蓝色功能
我的天蓝色函数使用signalR。如果我在协商和其他 signalR 入口点上使用 AuthorizationLevel.Function,当 javascript 代码连接到 signalR: 函数时,如何传递函数键:
public static SignalRConnectionInfo Negotiate(
[HttpTrigger( AuthorizationLevel.Function, "post" )] HttpRequest req,
[SignalRConnectionInfo( HubName = "myHub")] SignalRConnectionInfo connectionInfo,
ILogger log )
{
return connectionInfo;
}
网站:
const connection = new signalR.HubConnectionBuilder()
.withUrl('https://<myfunction>.azurewebsites.net')
.configureLogging(signalR.LogLevel.Information)
.build();
connection.start()
.catch(console.error);
似乎 HubConnectionBuilder 可以在 c# 中访问标头,但不能在 javascript 中访问。
我已阅读将标头添加到@aspnet/signalr Javascript 客户端 ,但第一个建议将密钥附加到 url,并且在连接时会将 /negotiate 附加到它,从而导致带有 https://host/&code=/negotiate 的 URL 无效。
如果不可能,建议有什么替代方法来保护我的 signalR 功能?(可能是不记名令牌,如https://docs.microsoft.com/en-us/aspnet/core/signalr/authn-and-authz?view=aspnetcore-3.1)
谢谢