【问题标题】:Created Middleware but it is not working in Laravel 5.5创建了中间件,但它在 Laravel 5.5 中不起作用
【发布时间】:2018-05-31 11:22:44
【问题描述】:

我想为特定用户验证视图文件。我为此创建了中间件。下面是中间件的代码:-

namespace App\Http\Middleware;

use Closure;

use Illuminate\Support\Facades\Auth;

class ClientAuth
{
    public function handle($request, Closure $next)
    {
        if(Auth::user() && Auth::user()->account_type==3)
        {
            return $next($request);
        }

            return redirect('/');

    }
}

接下来,我在 kernel.php 文件中调用了“客户端”中间件。下面是代码:-

protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'admin' => \App\Http\Middleware\isAdmin::class,
    'client' => \App\Http\Middleware\ClientAuth::class
];

然后,我在路由中调用了这个。

Route::group(['middleware' => ['auth','client']], function () 
{

   Route::get('clientdatabase',
   'ClientDatabase\ClientdatabaseController@ClientDatabase');

});

这不起作用。我哪里错了?

【问题讨论】:

  • “不工作”并不是对正在发生的事情的描述......您期望发生什么以及实际发生的事情
  • 你不需要 auth 中间件
  • 如果我删除 auth 中间件,它就不起作用
  • “它不起作用”......我们真的必须一遍又一遍地继续这样做吗?
  • 好的,还有其他选择吗?

标签: php laravel authentication middleware


【解决方案1】:

您的呼叫路线错误。 例如

  Route::middleware(['auth','client'])->group(function () {

       Route::get('clientdatabase','ClientDatabase\ClientdatabaseController@ClientDatabase');

    });

【讨论】:

  • 这只是注册组的另一种方式
  • 谢谢!但仍然没有变化。
猜你喜欢
  • 1970-01-01
  • 2018-09-01
  • 2021-11-28
  • 2018-06-12
  • 2018-05-26
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
相关资源
最近更新 更多