如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TypeScript 中为类属性动态分配值

如何在 Swift 中为以下观察删除 GeoFire 句柄?

如何在 Swift 中为以下观察删除 GeoFire 句柄?

如何在highcharts中为图例添加工具提示

如何在 Julia 中为可变结构设置默认参数?

如何在 IntelliJ IDEA 中为 Ktor 设置运行配置?