具有用户权限的基于JWT令牌的授权Asp.net core 2.0

时间:2018-07-17 11:14:04

标签: c# asp.net-core jwt

我已经创建了一个JWT令牌,其声明为具有读取或写入或删除权限,如下图所示。

Serializable

现在,管理员/普通用户都登录到系统。管理员和普通用户将获得令牌并存储在本地存储中。

普通用户第一次不会获得读取/写入/创建/删除UI控件。令牌到期时间为2分钟。

现在,管理员可以如下更改数据库中普通用户的权限 permission

因此,普通用户的令牌不会过期。仍然他不会读写。如果令牌过期,则逻辑起作用,然后用户再次登录,然后他可以查看读/写UI控件

我如何与管理员更改权限同时实现这一目标。

一些参考链接 permission

https://jonhilton.net/identify-users-permissions-with-jwts-and-asp-net-core-webapi/

1 个答案:

答案 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为经过身份验证的用户创建令牌。由您决定是否要到期并创建具有有效许可权的新有效令牌。