2016-11-21 2 views
0

사용자가 처음으로 로그인했는지 확인하기 위해 Laravel 미들웨어를 설정했습니다 ($user->last_logged_in_date field의 null 값에 대한 간단한 확인을 통해). 내가 원하는 것은 새로운 사용자가 /password/reset보기로 리디렉션되어 이메일 주소를 입력하고 링크를받을 수 있도록하는 것입니다. "8000 localhost"를Laravel - 리디렉션이 너무 많습니다.

다른 페이지를 엽니 다 리디렉션 페이지를 열 경우가 발생할 수 있습니다을 나는

너무 많은 리디렉션 메시지를 수신하고있어

는 열려고 발생했습니다 그런 다음 원래 페이지를 열려면 리디렉션됩니다.

내 컨트롤러

모두 $this->middleware(['auth', 'new_user']);는 언급 한 내 미들웨어는 다음과 같습니다 :

<?php 

namespace App\Http\Middleware; 

use Closure; 

use App\Http\Controllers\Auth; 


class CheckIfNewUser 
{ 
    public function handle($request, Closure $next) 
    { 
     $user = $request->user(); 

     if (! is_null($user->last_logged_in_date)) { 
      return $next($request); 
     } 

     return redirect('password/reset'); 
    } 
} 

어떤지도? 내가 제대로 이해하면

+1

암호 재설정 컨트롤러에도'$ this-> middleware ([auth ','new_user '])가있는 경우; 그것은 무한대 리디렉션을 야기 할 것입니다. – Moak

+0

답장을 보내 주셔서 감사합니다. 암호 재설정 컨트롤러에는 $ this-> middleware ('guest') 만 있습니다. 내가 잘못 될 수있는 다른 아이디어가 있습니까? – Ows

+0

홈 페이지를 표시하는 컨트롤러는 어떻게됩니까? 어떤 미들웨어가 있니? – Maraboc

답변

0

그래서 암호 재설정 컨트롤러에 로그인하지 않는 사용자를 기대 guest 미들웨어를 사용합니다. 당신은 사용자가이 아니라 새로운 기록하는 경우에 개막 new_user 미들웨어를 만들었습니다. 따라서 로그인 한 새 사용자가 로그인해야하기 때문에 명확하지 않은 게스트를 필요로하는 리셋 컨트롤러로 전송되므로 새 사용자임을 확인하고 확인하는 홈 컨트롤러로 다시 보내집니다. 그래서 당신은 암호 재설정으로 보냅니다 .... 당신은 그림을 얻습니다 :

+0

Doh! 나는 그것을 어떻게 보지 못했습니까? 도와 주셔서 정말 감사합니다! – Ows

+0

답변을 한 경우 대답을 수락으로 표시하십시오. – Moak

관련 문제