2016-06-30 4 views
1

Ich implementiere Benutzer und Admin-Login-Funktion mit verschiedenen Routen. Ich habe gerade Benutzerrouten geändert, um Admin-Routen zu erstellen.Angemeldeter Benutzer (Admin) Abrufen von Auth :: guest(): true in Laravel 5.2

Mein routes.php

Route::get('/', function() { return view('welcome'); 

Route::group([ 'prefix' => 'admin', // "namespace" => ], function() { 
    Route::get('/login', '[email protected]'); 
    Route::post('/login', '[email protected]'); 
    Route::get('/logout', '[email protected]'); 
    Route::get('/home', '[email protected]'); 
    }); 

php artisan route:list 

|  | GET|HEAD | admin/home     |      | App\Http\Controllers\[email protected]     | web,auth:admin | 
|  | POST  | admin/login     |      | App\Http\Controllers\[email protected]     | web,guest:admin | 
|  | GET|HEAD | admin/login     |      | App\Http\Controllers\[email protected]   | web,guest:admin | 
|  | GET|HEAD | admin/logout     |      | App\Http\Controllers\[email protected]     | web    | 
|  | GET|HEAD | home       |      | App\Http\Controllers\[email protected]      | web,auth:user | 
|  | GET|HEAD | login      |      | App\Http\Controllers\Auth\[email protected]   | web,guest:user | 
|  | POST  | login      |      | App\Http\Controllers\Auth\[email protected]     | web,guest:user | 
|  | GET|HEAD | logout      |      | App\Http\Controllers\Auth\[email protected]     | web    | 
|  | POST  | password/email    |      | App\Http\Controllers\Auth\[email protected] | web,guest  | 
|  | POST  | password/reset    |      | App\Http\Controllers\Auth\[email protected]    | web,guest  | 
|  | GET|HEAD | password/reset/{token?}  |      | App\Http\Controllers\Auth\[email protected]  | web,guest  | 
|  | GET|HEAD | register      |      | App\Http\Controllers\Auth\[email protected] | web,guest:user | 
|  | POST  | register      |      | App\Http\Controllers\Auth\[email protected]    | web,guest:user | 

Ich habe Admin-Wache.

Jetzt kann ich mich als Benutzer und Admin anmelden, aber wenn ich in der Home-Ansicht bin, bekomme ich immer noch Auth :: guest => true. So kann ich nicht genau die Ansicht bekommen, die ich will.

app.blade.php 
... 
@if (Auth::guest()) 
     <li><a href="{{ url('/login') }}">Login</a></li> 
     <li><a href="{{ url('/register') }}">Register</a></li> 
@else 
     <li class="dropdown"> 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
       {{ Auth::user()->name }} <span class="caret"></span> 
      </a> 

      <ul class="dropdown-menu" role="menu"> 
       <li><a href="{{ url('/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li> 
      </ul> 
     </li> 
@endif 
.... 

Gibt es eine Möglichkeit, dies zu lösen?

+0

Versuchen 'Auth :: Schutz ('admin') -> Gast()'. –

+0

Können Sie Ihre routes.php-Datei anzeigen? –

+0

'Strecke :: get ('/', function() { return Ansicht ('Willkommen'); });' ' Strecke :: Gruppe ([ 'Präfix' => 'admin', // "Namespace" => ], function() { Strecke :: get ('/ login', 'AdminAuthController @ showLoginForm'); Strecke :: Post ('/ login', 'AdminAuthController @ Login'); Strecke :: get ('/ logout', 'AdminAuthController @ logout'); Route :: get ('/ home', 'AdminHomeController @ index'); }); ' Route :: auth(); Route :: get ('/ home', 'HomeController @ Index'); ' – hanachan1026

Antwort

0
Route::group(['namespace' => 'Frontend', 'middleware' => ['web','auth'], function() { 
    Route::get('/', '[email protected]');  
}); 

Ihre Middleware benötigt so etwas wie Beispiel oben. Sie benötigen einen Web-und Auth

hier sehen für eine andere Antwort Laravel 5.2 Auth::login not persisting logged user

+0

Danke! Ich hatte keine Ahnung, was ich noch tun konnte – hanachan1026

+0

Kein Problem, hatte den gleichen Fehler für etwa drei Tage einmal, war einfach nicht auf die Web-Middleware verweisen –

Verwandte Themen