Laravel(5.8)@来宾无法识别自定义守卫之一。我有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');
一切都可以在suppliers
上正常运行,但是admins
不能被标识为使用Blade @guest指令登录,但是Auth::guard('admins')->check()
返回true。
任务更像是:如何使用带有多个后卫的剑刃。例如,如果我不知道哪个防护人员已准确登录,该如何打印用户名?
答案 0 :(得分:1)
来自laravel文档:
如果需要,您可以指定应检查的身份验证保护 使用@auth和@guest指令时:
@auth('admin') // The user is authenticated... @endauth @guest('admin') // The user is not authenticated... @endguest
因此,您可以给@auth
和@guest
一个参数,该参数是用于检查的身份验证保护措施