python RBAC权限控制模型扩展 基于JWT实现

  jwt,全称 json web token,是使用一定的加密规则生成的token串来保证登录状态、验证用户身份、做权限认证等工作

  以往保存用户登录状态多用session实现,但是当服务涉及多台服务器分布式集群部署时,session在服务器之间共享就会耗费大量的服务器资源

  而jwt生成的token串保存在客户端,并含有服务器自带的secert-key实现验证,也就是说服务器端只是生成token和验证token,而token却是保存在客户端,

那么这样的话,服务器就不会耗费大量资源在保存用户登录信息和权限认证上面了。而jwt说白了,就是在用户登录时保存用户的用户信息及用户的登录时间,

每次验证时使用secert key解密获取用户信息,并验证登录时间与当前时间的差值,与config中设置的过期时间对比,验证token是否过期。

  rbac是一个基于角色实现的权限控制模型,如下图所示

 

 这就是rbac的基本流程,而jwt的作用就是保存用户信息,根据用户信息判断是否有调用权限再继续向下运行

具体jwt实现的代码就不贴出来了,网上有很多的帖子了                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

posted on 2019-12-16 16:35  小田是我  阅读(812)  评论(0编辑  收藏  举报

导航