繁体   English   中英

令牌过期后如何从 SignalR 捕获 401 Unauthorized

[英]How to catch 401 Unauthorized from SignalR after token expired

我已经建立了一个页面,通过 SignalR 从我的 azure 函数后端获取实时数据。假设我停留在页面上,观察数据 1 小时,我可能会断开连接,signalr 客户端将尝试自动重新连接,这很好用。 但是,当它尝试重新连接时,jwt 令牌可能已过期,并且从 signalr 客户端抛出 401。

当重新连接被触发时,有什么方法可以从 signalr 客户端捕获这个 401 吗?

许多人似乎使用.onclose() 但对我不起作用,或者每次连接时都获取一个新的 jwt 令牌,我想这可能是我需要继续的方式,但我更喜欢是否有可能抓住它相反,我认为这将是一个更好的解决方案。

var connection = new signalR.HubConnectionBuilder()
                .configureLogging(signalR.LogLevel.Information)
                .withUrl(config.default.hostname + "/api/v1/core/signalr",
                    { accessTokenFactory: () => store.state.accessToken })
                .withAutomaticReconnect([0, 0, 10000])
                .build();

connection.start();

希望你明白我在这里寻找什么! 干杯!

这就是为什么在{ accessTokenFactory: () => store.state.accessToken }你应该传递一个 function 来刷新令牌。 因此,当令牌过期时,它将自动从此方法检查新令牌。 所以不要将令牌存储在store.state.accessToken ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM