我已经创建了一个JWT令牌,其声明为具有读取或写入或删除权限,如下图所示。
现在,管理员/普通用户都登录到系统。管理员和普通用户将获得令牌并存储在本地存储中。
普通用户第一次不会获得读取/写入/创建/删除UI控件。令牌到期时间为2分钟。
因此,普通用户的令牌不会过期。仍然他不会读写。如果令牌过期,则逻辑起作用,然后用户再次登录,然后他可以查看读/写UI控件
我如何与管理员更改权限同时实现这一目标。
https://jonhilton.net/identify-users-permissions-with-jwts-and-asp-net-core-webapi/
答案 0 :(得分:0)
由于此逻辑正在服务器中处理,因此您需要通知UI该用户的权限更改。在这种情况下,SignalR之类的东西非常容易与.NET Core一起使用,它将可以完美地工作。这样可以向UI发出权限更改警报,并通过websockets事件传递给用户另一个JWT令牌,从而解锁UI逻辑。然后可以将其重新保存到该用户的本地存储中(显然,如果当前正在使用该平台)
https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client?view=aspnetcore-2.1
我认为JWT中没有预构建的方式可以执行您要尝试的操作,JWT为经过身份验证的用户创建令牌。由您决定是否要到期并创建具有有效许可权的新有效令牌。