为什么Auth :: user()在自定义服务提供商的路由中返回null?

时间:2019-04-02 15:40:58

标签: laravel authentication view routes service-provider

我正在Factures中进行一项名为App\Services\Factures的新服务。 我创建了\App\Services\Factures\FacturesServiceProvider

public function register() {
    $this->app->bind('factures', function ($app) {
        return new Facture;
    });
}

public function boot() {
    // laod Routes
    $this->loadRoutesFrom(__DIR__ .'/Http/routes.php');

    // load Views
    $this->loadViewsFrom(__DIR__ . '/views', 'factures');
}

我注册了我的提供程序,一切正常,期望Auth::user()返回视图中的nullroutes.php

如何在自定义服务中访问Auth()?

1 个答案:

答案 0 :(得分:0)

此帖子解决了我的问题:User Auth not persisting within Laravel package

我发现Laravel将一个名为'web'的中间件应用于默认的route / web.php文件,并且不会将此组应用于通过服务提供商加载的外部包路由。

因此,我在自定义文件中的路由应位于web中间件中:

Route::group(['middleware' => ['web']], function () {
    Route::get('testing-services', function(){
        dd(Auth::user());
        // output is valid
    });
});