rbac权限认证,用户权限是保存在session中吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了rbac权限认证,用户权限是保存在session中吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1788字,纯文字阅读大概需要3分钟。
内容图文
![rbac权限认证,用户权限是保存在session中吗?](/upload/InfoBanner/zyjiaocheng/244/a75e5078335045faa8a1e9c6bfe0a75b.jpg)
rbac 权限认证.
一种用户登录后,不可能是每次请求都查询一次数据库.
1.是不是把他拥有权限的接口地址,全部取出,然后保存到 session 中?
2.在 laravel 中,有的接口需要认证,有的接口是开放的,我现在路由是这样,有没有更优雅的方式实现?
Route::group(['prefix' => 'api/v1'],function(){
Route::post('login',"AccountController@Login");
Route::group(['middleware'=>'auth'],function(){
Route::get("paper","PaperController@Index");
});
});
3.rbac 中节点表是这么存放的
大的节点下有具体的接口地址,这样合适吗?你们是这么保存的吗?
每次新增接口都要更新表数据.有没有其他更优雅的实现方式.
回复内容:
rbac 权限认证.
一种用户登录后,不可能是每次请求都查询一次数据库.
1.是不是把他拥有权限的接口地址,全部取出,然后保存到 session 中?
2.在 laravel 中,有的接口需要认证,有的接口是开放的,我现在路由是这样,有没有更优雅的方式实现?
Route::group(['prefix' => 'api/v1'],function(){
Route::post('login',"AccountController@Login");
Route::group(['middleware'=>'auth'],function(){
Route::get("paper","PaperController@Index");
});
});
3.rbac 中节点表是这么存放的
大的节点下有具体的接口地址,这样合适吗?你们是这么保存的吗?
每次新增接口都要更新表数据.有没有其他更优雅的实现方式.
1- 存在session里面是必然的,所以修改权限后对应的用户需要重新登陆
2- 没仔细研究过laravel的rbac,不过用中间件看起来已经挺不错了,当然你也可以考虑不在路由的时候进行验证,而是最后分发完成的时候再验证(比如在构造controller的时候验证,当然这要求path是controller/action结构而不是路由地址)
3- 数据结构上满足需求就好,但是你这个有瑕疵,要不都用/开头,要不就都不要/开头。至于每次新增接口都要更新数据表是必然的,专门写个功能自动同步就行了。你截图中的数据明显有问题,id=25的数据pid不应该是4吧。
补充,该设计的另一个缺点就是没有定义顶级权限,这样管理起来会更麻烦。通常我们会定义一个顶级权限,其他的权限都是它的直接/间接子节点,这样admin用户只要具有了顶级权限就ok了,不会受到接口数据更新的影响。
内容总结
以上是互联网集市为您收集整理的rbac权限认证,用户权限是保存在session中吗?全部内容,希望文章能够帮你解决rbac权限认证,用户权限是保存在session中吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。