2016-11-21 47 views
0

Laravelミドルウェアをセットアップして、初めてユーザーがログインしたかどうかを確認しました(ヌル値の確認は$user->last_logged_in_date field)。私が望むのは、新しいユーザーが/password/resetビューにリダイレクトされ、電子メールアドレスを記入してリンクを送信できるようにすることです。Laravel - リダイレクトが多すぎます

私が開こうとすると発生し

リダイレクトが多すぎますのメッセージを受信して​​います「はlocalhostを:8000」

を使用すると、別の ページを開くためにリダイレクトされるページを開いた場合、これが発生する可能性がありますそれをリダイレクトして元のページを開きます。

私のコントローラはすべて、$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'); 
    } 
} 

どれ指導?私が正しく理解のであれば、パスワードのリセット・コントローラは、ユーザーが署名されていないことを期待 guestミドルウェアを使用しています

+1

パスワードリセットコントローラにも '$ this->ミドルウェア(['auth'、 'new_user'])がある場合は、それは無限リダイレクトを引き起こすでしょう – Moak

+0

返事をありがとう。 パスワードリセットコントローラには$ this-> middleware( 'guest')しかありません。 私は間違っているかもしれない他のアイデア? – Ows

+0

ホームページを表示するコントローラはどうですか?ミドルウェアはありますか? – Maraboc

答えて

0

。 あなたはユーザーがログインしたが、新しいされたときにキックnew_userミドルウェアを作成しました。 ログインしている新しいユーザーは、リセットされたコントローラに送信されます。リセットされたコントローラには、サインインしているからではないゲストが必要なため、新しいユーザーであることを確認して、あなたはパスワードをリセットします....あなたは画像を手に入れます:

+0

Doh!どのように私はそれを見ませんでしたか?手伝ってくれてどうもありがとう! – Ows

+0

回答があった場合は、回答を受け入れたものとしてマークしてください。 – Moak

関連する問題