如何在 flm.php 中为 unisharp/laravel-filemanager 添加多个 Auth
Posted
技术标签:
【中文标题】如何在 flm.php 中为 unisharp/laravel-filemanager 添加多个 Auth【英文标题】:How to add multiple Auth in flm.php for unisharp/laravel-filemanager 【发布时间】:2018-04-20 08:21:18 【问题描述】:我正在使用 laravel 5 4 和 "unisharp/laravel-filemanager": "~1.8"
在我的项目中,我有多个身份验证,例如成员、客户、经理、经销商,但只有经理和客户可以访问文件上传。 这是我的 flm.php
'middlewares' => ['web', 'auth:client', 'auth:manager'],
这不起作用。 但 'middlewares' => ['web', 'auth:client'], // 工作,但只有客户端可以上传,但经理不能上传 或者 'middlewares' => ['web', 'auth:manager'], // 工作但只有管理器可以上传而客户端不能上传
我也尝试使用,但它也不起作用 'user_field' => App\Handlers\ConfigHandler::class, 和处理程序配置
if (Auth::guard('client')->check())
return Auth::guard('client')->user()->id;
if (Auth::guard('manager')->check())
return Auth::guard('manager')->user()->id;
我需要为客户和经理工作的中间件
谢谢
【问题讨论】:
【参考方案1】:您好,我在 Laravel 5.4 中遇到了同样的问题,我是这样解决的。 首先在 web.php 中的 laravel-filemanager 路由中,我这样做了。
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth:manager,client']], function ()
\UniSharp\LaravelFilemanager\Lfm::routes();
);
web 是默认防护,供应商是自定义防护...在您的情况下,它将是 auth:manager,client
然后为了避免用户使用相同的文件夹名称,我需要所有管理员(经理)使用相同的文件夹,然后客户端后卫使用 auth()->user()->id
,我将 laravel-filemanager ConfigHandler 更改为此
<?php
namespace UniSharp\LaravelFilemanager\Handlers;
class ConfigHandler
public function userField()
if(auth('vendor')->check())
return auth()->user()->id;
else
return 'admin';
/*public function userField()
return auth()->user()->id;
*/
希望对你有帮助。
【讨论】:
以上是关于如何在 flm.php 中为 unisharp/laravel-filemanager 添加多个 Auth的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中为以下观察删除 GeoFire 句柄?