Ich habe die folgenden Dateien:Laravel 5.4 Middleware kann nicht definieren Wache
routes.php
Route::get('client-portal', '[email protected]');
DashboardController.php
public function __construct()
{
$this->middleware('auth:client-users');
}
Auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'client-users' => [
'driver' => 'session',
'provider' => 'client-users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'client-users' => [
'driver' => 'eloquent',
'model' => \App\Models\ClientPortal\User::class
],
],
Authenticate.php
public function __construct(Guard $auth) {
$this->auth = $auth;
}
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
dd($this->auth);
return redirect()->guest('login');
}
}
return $next($request);
}
Immer, wenn ich über client-users
bin angemeldet und navigieren Sie zu /client-portal.
Die dd
von Authenticate.php
gibt eine SessionGuard
Instanz, mit dem Attribut name
Satz web
Aber, ich habe angeben 'Auth: Client-Benutzer im Konstruktor des Controllers. Also mein erster Gedanke war, dass die Authenticate Middleware globale Middleware war, also überprüfte ich das, aber es war nicht. Wenn ich die Middleware-Zeile aus dem Konstruktor entferne, wird die Seite angezeigt.
Weiß jemand, wo das Problem liegt?
Vielen Dank.