如何制作中间件来控制 Laravel 7 项目中没有 id 的没有人进入页面
Posted
技术标签:
【中文标题】如何制作中间件来控制 Laravel 7 项目中没有 id 的没有人进入页面【英文标题】:how can I make middlware to control the no one go to page without id ln Laravel 7 project 【发布时间】:2021-04-27 03:27:28 【问题描述】:我有 LMS 项目并且有 3 个角色 admin
、teacher
、student
我无法制作中间件来控制任何人对管理员、教师或学生的访问权限,除了
这是一个 Laravel 7 项目。
【问题讨论】:
请分享更多细节——你想达到什么目标,为什么不能做到? 【参考方案1】:因此,您可能希望确保每个人都经过正确身份验证和登录。
在您的路由文件中,您应该运行只有经过身份验证的用户才能通过auth
中间件访问的所有路由。
Route::group(['middleware' => ['auth']], function()
Route::get('/home', 'HomeController@index')->name('home');
// more routes
);
要指定用户应该被重定向到哪里,你可以在app/Http/Middlware/Authentication.php
打开中间件并检查方法
protected function redirectTo($request)
【讨论】:
我想从零开始创建中间件 @MazenKhalid 您可以在Laravel Docs阅读有关编写自己的中间件的信息【参考方案2】:假设您的用户表中有角色列。
中间件代码应该是:
public function handle($request, Closure $next)
if (Auth::user()-> role === 'ADMIN')
return $next($request);
else
return back();
希望这将是有用的并且不要忘记阅读相同的 Laravel 文档,这将提高你的技能。
您也可以为其他角色创建中间件。
【讨论】:
以上是关于如何制作中间件来控制 Laravel 7 项目中没有 id 的没有人进入页面的主要内容,如果未能解决你的问题,请参考以下文章