【发布时间】:2019-07-20 23:17:03
【问题描述】:
Laravel (5.8) @guest 无法识别自定义守卫之一。我有 2 个自定义守卫:
'guards' => [
'suppliers' => [
'driver' => 'session',
'provider' => 'suppliers',
],
'admins' => [
'driver' => 'session',
'provider' => 'admins',
],
],
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'suppliers' => [
'driver' => 'eloquent',
'model' => App\Supplier::class,
],
],
登录路径为:
// Admin Auth routes
Route::get('/admin/login', 'Auth\LoginController@showLoginForm')->name('admin.login');
Route::post('/admin/login', 'Auth\LoginController@login')->name('admin.login.post');
Route::post('/admin/logout', 'Auth\LoginController@logout')->name('admin.logout');
// Suppliers Auth routes
Route::get('/login', 'AuthSuppliers\LoginController@showLoginForm')->name('login');
Route::post('/login', 'AuthSuppliers\LoginController@login')->name('login.post');
Route::post('/logout', 'AuthSuppliers\LoginController@logout')->name('logout');
Everythink 与 suppliers 一起工作正常,但 admins 无法识别为使用刀片 @guest 指令登录,但 Auth::guard('admins')->check() 返回 true。
任务更像是:如何使用带有多个守卫的刀片。例如,如果我不知道哪个守卫准确登录,如何打印用户名?
【问题讨论】:
-
Auth::user() 总是提供登录用户信息。你可以试试
标签: laravel