gpt4 book ai didi

php - 基于多用户角色的路由级中间件

转载 作者:行者123 更新时间:2023-12-01 22:05:32 26 4
gpt4 key购买 nike

我在laravel中有大约10种类型的用户角色应用程序,例如

  user_type_1 and user_type 4 are accessing url-1.
user_type_7, user_type_5 and user_type 4 are accessing url-2.
user_type_5, user_type_1, user_type_3 and user_type 6 are accessing url-3.
............................................
............................................
n number of combination of routes. url according to user type.

我的 route/web.php 文件有大约 1500 个路由,目前没有使用中间件分成组。我必须限制用户仅使用为该类型 user_type 授权的 url。您能否建议任何更好的方法来做到这一点。

我曾尝试将 url 与中间件组结合起来,如下所示,但经过一些工作后,我离开了这种方法。

Route::group(['middleware' => ['middleware_user_type_1', 'middleware_user_type_2']], function () {
Route::get('url-1', 'XYZController@someMethod');
});

通过这种方式,请求首先转到数组中的第一个中间件,如果用户类型无效,则不会尝试使用第二个中间件。

最佳答案

您需要实现一个中间件并将用户类型传递给它。

Route::group(['middleware' => ['check_user_type:type_1,type_2']], function () {
Route::get('url-1', 'XYZController@someMethod');
});

看看 spatie/laravel-permission 中类似的逻辑是如何实现的角色中间件。

Route::group(['middleware' => ['role:super-admin|writer']], function () {
//
});

中间件然后通过分隔符分解角色字符串,然后检查当前用户是否具有任何角色。

关于php - 基于多用户角色的路由级中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com