2016-02-04 1 views
1

Когда способ доставки Auth::attempt и Auth::check возвращает true, а затем перенаправить на пути adminAuthentication Laravel

class LoginController extends Controller { 

    public function login(LoginRequest $request) 
    { 
     if (Auth::attempt($request->only(['login', 'password']))) { 
      var_dump(Auth::check()); // true 
      return redirect()->intended('admin'); 
     } 

     return back(); 
    } 
} 

Route admin имеют MiddleWare

class AdminMiddleware 
    { 
     public function handle($request, Closure $next) 
     { 
      var_dump(Auth::check()); // false 

      if (!Auth::check()) { 
       return view('login'); 
      } 

      return $next($request); 
     } 
    } 

И затем перенаправлять метод Auth :: check возвращает false, почему это происходит?

+0

Это может быть проблемой сеанса, проверьте настройки куки установлены правильно. – GiamPy

+0

Какие настройки конкретно? config -> session? –

+0

убедитесь, что ваше промежуточное программное обеспечение администратора появилось после промежуточного программного обеспечения группы «web» в качестве инициализированного сеанса. – Gal

ответ

0

заменить код:

use Illuminate\Http\Response; 
use Closure; 
use Auth; 

class AdminMiddleware 
{ 
    public function handle($request, Closure $next) 
    { 
     if (!Auth::check()) { 
      return new Response(view('login')); 
     } 

     return $next($request); 
    } 
} 
+0

Не используйте 'try this' в качестве вашего ответа. Хороший ответ должен дать объяснение проблемы и решения. Если вы уверены, что ваш ответ верен, вам не нужно использовать 'try this', а просто' do this becasue' или 'replace your code with'. Если вы не уверены, тогда используйте комментарий вместо ответа. – zajonc

+0

благодарит за совет –