在服务提供商引导方法中注册路由时,未初始化身份验证

时间:2018-11-14 07:12:32

标签: laravel laravel-5.7

在服务提供商启动方法中注册路由时,为什么不初始化Auth?

场景1:身份验证正常

web.php

Route::get("/user", "UserController@index");

用户控制器类:

Class UserController extends Controller {
     function index() {
        if(Auth::check()) { // returns true
            // perform action
        } else {
            // redirect here
        }
    }
}

场景2:身份验证未初始化

但是当您在ServiceProvider Auth :: check的引导内部注册路由时,现在返回false。以这种方式调用时,似乎Auth已正确初始化。

...
App\Providers\RouteServiceProvider::class,

/*
 * UserServiceProvider
 */
App\Providers\UserServiceProvider::class,

],
...

用户服务提供者类别:

class UserServiceProvider extends ServiceProvider {
    public function boot() {
        Route::get("/user", "UserController@index");
    }
} 

用户控制器类:

Class UserController extends Controller {
     function index() {
        if(Auth::check()) { // returns false
            // perform action
        } else {
            // redirect here
        }
    }
}

0 个答案:

没有答案