在服务提供商启动方法中注册路由时,为什么不初始化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
}
}
}