我有一个关于ASP.NET核心和声明中的JWT身份验证的问题,因为我不知道我是否一切都正确。
当我在ASP.NET中创建JWT令牌时,我添加了一些声明,其中一些可以是自定义的。当带有JWT令牌的请求从客户端发送到API时会发生什么情况。User.Claims是如何填充的?它是否使用从JWT读取的声明?
我想创建一个自定义身份提供者(不想使用ASP.NET提供的这个),用我自己的表存储用户数据、角色等。我不想将满足策略所需的所有重要数据都存储在JWT令牌中(令牌中存储的信息量很重要,以及安全问题)。是否可以仅将基本声明(如用户id、名称等)存储在JWT令牌中,然后重新获取其他所需的数据DB/ C
我在一个api服务器上工作,可以从移动应用程序中恢复请求。我在ASP.Net MVC Web API 2中使用JWT。在这个Admin中,移动应用程序用户可以访问各个部门。我在登录时在Claims中设置了这些DeptIds。对于来自应用程序的每个授权请求,在自定义操作过滤器属性中,我读取声明以将请求URL中的deptId与声明进行匹配。这一切都运行得很好。
现在我的问题是,当管理员从应用程序用户撤销任何特定部门的访问时,我应该如何使该用户的access_token过期,以便在登录请求调用时,我可以设置新的Claims。否则,管理员将从服务器中删除访问权限,但deptId仍存在于用户的Claim