laravel 5.5自定义库创建中间件$ request->用户返回null

时间:2018-03-03 21:47:50

标签: php laravel authentication middleware

嗨我在/vendor/myCustom/src/Middleware/aMdl.php中的新鲜库中的auth() - > user()或$ request-> user()有问题

public function handle($request, Closure $next, $right)
{
    return var_dump($request->user()); <------ Here i get NULL

    if($request->user()->hasRights($right)){
        return $next($request);
    }

    return redirect("/");
}

这是一个简单的服务提供商

public function boot()
{


    $this->loadViewsFrom(__DIR__."/views", 'aFolder');
}

/**
 * Register services.
 *
 * @return void
 */
public function register()
{
    include __DIR__."/routes.php";
    $this->app->make("aCustomlib\aFolder\Controllers\aController");
}

一条简单的路线。

 Route::get("/aPath", "aCustomlib\aFolder\Controllers\aController@index");

我在Kernel.php中注册了中间件

然后我只是在aController.php中调用__constructor

$this->middleware('rights:aRight');

我知道名字是愚蠢的名字,但它只是一个例子,我只是在学习。

感谢您的回答。

PS:所有这些文件都在/ vendor文件夹中

即使我在__constructor(){$ this-&gt;中间件(&#39; auth&#39;)

中使用,也会发生这种情况

1 个答案:

答案 0 :(得分:1)

您需要将路由包装在web中间件组中(启动并填充会话相关数据),例如:

Route::group(['middleware' => 'web'], function () {
    include __DIR__."/routes.php";
});