Blazor - 服务器端 - Cookie 身份验证

时间:2021-04-23 08:45:44

标签: authentication blazor server-side

我想在Blazor Server Side实现身份验证,使用cookie身份验证,我查了很多示例项目,但都是使用Microsoft.Identity。

1 个答案:

答案 0 :(得分:0)

cookie 身份验证和服务器端 Blazor 的问题在于,服务器端 Blazor 用来与服务器通信的 Web 套接字在 cookie 过期后很长时间内仍将保持打开和连接状态。可能有一种方法可以定期结束/刷新这个 websocket,但我没有研究它。

如果您实际使用 Blazor WebAssembly,则必须实现自己的 AuthenticationStateProvider 来管理您的登录/注销。

您还需要实现一个 /user/keepalive 端点,以便当用户浏览他们的 cookie 时保持活动状态。参见 Blazor 的 NavigationManager.LocationChanged

还有一个 /user/me 端点来检测 cookie 是否仍然有效,并在用户点击 F5 时加载任何权限。没有什么比登录、按 F5 并且不得不再次登录更烦人的了。