【问题标题】:SignalR Core authorization with refreshing tokenSignalR Core 授权与刷新令牌
【发布时间】:2020-05-02 02:49:08
【问题描述】:

我有几个关于服务器端 SignalR Core 授权的问题;

我的服务器是用 ASP.NET Core 编写的,它使用 SignalR CORE 向用户发送通知。

1) 如果客户端连接了一个包含 AccessTokenProvider 的选项对象并且访问令牌发生了变化——即使使用像套接字这样的长时间运行的连接,服务器是否也会重新授权用户?即当客户端的访问令牌更改时,SignalR 是否在服务器端创建一个新的用户对象,而连接是活动的?如果不是——应该如何处理?

2) 在客户端 - 如果连接从服务器端或客户端请求停止中止,是否必须调用 DisposeAsync() 并创建新的连接对象,或者可以安全地重用前一个连接对象不处理?

谢谢。

【问题讨论】:

标签: signalr signalr-hub asp.net-core-signalr


【解决方案1】:

1) 令牌过期时,需要刷新令牌。为此,您需要中止连接并重新连接。这很愚蠢,但是当令牌过期时服务器会断开连接。

2) 如果手动中止,对象被释放,新的连接将是新的。如果连接将因类似的互联网连接问题而断开,自动重新连接,它将具有相同的实例并保持相同的连接(和相同的 connectionId)。

【讨论】:

  • 当令牌过期时,连接进入重新连接事件,所以我可以刷新令牌并更改 accessTokenFactory 函数中的值,还是我需要使用新令牌启动新连接到服务器?
  • 这是一个很好的问题,是文档中未解决的许多问题之一。您可以将令牌仅更改为令牌工厂吗?还是会继续重复使用最初连接时获得的第一个令牌?
猜你喜欢
  • 1970-01-01
  • 2014-03-17
  • 2018-08-21
  • 2017-12-25
  • 1970-01-01
  • 2016-10-13
  • 2017-10-10
  • 2015-04-24
  • 2018-08-20
相关资源
最近更新 更多