我想在Blazor Server Side实现身份验证,使用cookie身份验证,我查了很多示例项目,但都是使用Microsoft.Identity。
答案 0 :(得分:0)
cookie 身份验证和服务器端 Blazor 的问题在于,服务器端 Blazor 用来与服务器通信的 Web 套接字在 cookie 过期后很长时间内仍将保持打开和连接状态。可能有一种方法可以定期结束/刷新这个 websocket,但我没有研究它。
如果您实际使用 Blazor WebAssembly,则必须实现自己的 AuthenticationStateProvider
来管理您的登录/注销。
您还需要实现一个 /user/keepalive 端点,以便当用户浏览他们的 cookie 时保持活动状态。参见 Blazor 的 NavigationManager.LocationChanged
还有一个 /user/me 端点来检测 cookie 是否仍然有效,并在用户点击 F5 时加载任何权限。没有什么比登录、按 F5 并且不得不再次登录更烦人的了。