2016-11-21 2 views
0

Ich habe Laravel-Middleware erfolgreich eingerichtet, um zu überprüfen, ob sich der Benutzer zum ersten Mal anmeldet (über eine einfache Überprüfung auf einen Nullwert in einer $user->last_logged_in_date field). Ich möchte, dass diese neuen Benutzer in die Ansicht /password/reset weitergeleitet werden, damit sie ihre E-Mail-Adresse eingeben und einen Link an sie senden können.Laravel - Zu viele Weiterleitungen sind aufgetreten

ich eine Nachricht von

Zu viele Umleitungen Empfang beim Versuch, zu öffnen „localhost: 8000“

Dies kann auftreten, wenn Sie eine Seite öffnen, die eine andere Seite zu öffnen umgeleitet wird welches dann umgeleitet wird, um die ursprüngliche Seite zu öffnen.

Meine Controller alle haben $this->middleware(['auth', 'new_user']); verwiesen, und meine Middleware sieht wie folgt aus:

<?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'); 
    } 
} 

jede Anleitung?

+1

Wenn der Passwort-Reset-Controller auch $ $ this-> Middleware (['auth', 'new_user']); 'es würde eine Unendlichkeit Redirect – Moak

+0

Danke für die Antwort verursachen. Der Kennwortrücksetzcontroller hat nur $ this-> middleware ('guest'); Irgendwelche anderen Ideen, wo ich vielleicht falsch liege? – Ows

+0

Was ist mit dem Controller, der die Homepage anzeigt? Gibt es irgendwelche Middlewares? – Maraboc

Antwort

0

Also, wenn ich das richtig das Passwort Reset-Controller verstanden verwendet die guest Middleware, die den Benutzer erwartet nicht unterzeichnet werden. Sie haben eine new_user Middleware geschaffen, die anspringt, wenn ein Benutzer in aber neu angemeldet ist. Daher wird ein neuer Benutzer, der angemeldet ist, an den Reset-Controller gesendet, der einen Gast benötigt, den Sie offensichtlich nicht sind, weil Sie angemeldet sind. Er sendet Sie zurück an Ihren Heimcontroller, der prüft und erkennt, dass Sie ein neuer Benutzer sind so schickt es Sie zum Passwort-Reset .... Sie bekommen das Bild :)

+0

Doh! Wie habe ich das nicht gesehen? Vielen Dank für deine Hilfe! – Ows

+0

Wenn das beantwortet wurde, bitte die Antwort als akzeptiert markieren. – Moak

Verwandte Themen