JWT权限验证问题

来源:11-2 【理解】JWT与单点登录实例解释

ToExpress

2020-12-02

我想构建一个基于区域角色的系统,比如重庆市账户能看所有重庆区县的数据,重庆市下的渝中区账户只能看渝中区的数据。这种JWT能做到吗,老师有什么思路上指导吗

写回答

1回答

阿莱克斯刘

2020-12-03

当然可以,jwt就是为了解决这种问题而存在的。但我们的课程只是简单的jwt入门而已,课程内容只是jwt或者说是身份验证的冰山一角。所以要真正理解身份认证可能得多阅读一些相关的资料外加通过大量的代码练习才能真正掌握。

那么我简单说一下思路吧,首先你的需求有两点:1.“重庆市账户能看所有重庆区县的数据”;2. 重庆市下的渝中区账户只能看渝中区的数据。所以,你的需求跟账户角色无关,只跟账户本身所具有的权限有关,这就是课程中反复提到的claim。

而jwt是claim base的,我们完全可以通过拓展jwt来实现这个需求。请看下面几个例子:

1. 此账户可以查看重庆所有区的数据(仅查看,不能修改)

//img.mukewang.com/szimg/5fc8444009501ac112221166.jpg

2. 此账户可以查看渝中区数据(仅查看,不能修改)

//img.mukewang.com/szimg/5fc8443f0976067212061200.jpg

3. 此账户可以查看以及修改渝中区数据//img.mukewang.com/szimg/5fc84439091d3d3e11861198.jpg

4. 因为jwt的权限系统依赖与claim而不依赖与角色(但是也可以使用角色),所以非常灵活,比如下面这个例子

//img.mukewang.com/szimg/5fc84609097ff5c712361202.jpg

身份权限非常非常非常复杂,同时也有各种各样的实现方式,比如我们的课程使用jwt、更多的系统使用的是session,有使用Oauth的、也有很大一部分系统使用saml。

希望我的回答能帮助到你

0
1
千金不如一默
学习到了!
2022-03-28
共1条回复

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

977 学习 · 547 问题

查看课程