我目前的大学项目是学校管理系统 . 它主要由三个“概况”组成 - 一个用于学生,另一个用于教师/教授,第三个用于协调员/管理员 .
在身份验证并离开登录页面之后,这就是我想要发生的事情:
-
如果用户在应用程序中只占用一个角色,则应将其直接重定向到对应的 Profiles (例如:学生直接进入学生档案);
-
但是,对于那些占据两个甚至全部三个角色(不太可能但可能)的人来说,身份页面可以让他们在不同的 Profiles 中做出选择;
-
用户只能访问其角色定义的页面和配置文件;
在Laravel 5.6中实现这一目标的最佳方法是什么?
注意:我目前可以对用户进行身份验证,但没有权限和角色 . 我是'm using Laravel'的默认用户表 .
3 回答
我建议使用 ENTRUST (Laravel 5 Package)
简单而有力 .
要安装Laravel 5 Entrust,只需将以下内容添加到composer.json即可 . 然后运行composer update:
打开config / app.php并将以下内容添加到providers数组中:
在相同的config / app.php中,将以下内容添加到别名数组中:
运行以下命令以发布程序包配置文件
config/entrust.php:
打开config / auth.php并添加以下内容:
如果您想使用中间件(需要Laravel 5.1或更高版本),您还需要添加以下内容:
在
app/Http/Kernel.php
中路由中间件数组 .阅读更多内容并获取图书馆:https://github.com/Zizaco/entrust
@Julio Kirk您可以使用 Voyager 包 .
Voyager只是Laravel应用程序的管理员 . 无论你想要什么,你的应用程序在前端完成取决于你 . 您可以控制应用程序,并且可以使用Voyager通过添加数据,编辑用户,创建菜单和许多其他管理任务来简化您的生活 .
您的要求已在此项目中完成 .
由于一个用户只能拥有三个角色中的一个,因此您不需要将角色与权限分开 - 只需将角色单元添加到您的用户表中,或者如果您无法修改它,请创建具有id - 角色对的新角色 .
之后,您只需使用带参数的中间件:https://laravel.com/docs/5.6/middleware#middleware-parameters
确定是否允许用户访问当前路线 .
除此之外,这篇文章将回复你:Laravel 5.4 redirection to custom url after login