2016-03-21 8 views
0

Ich habe eine Laravel App für Fortrabbit eingesetzt. Die bereitgestellte App ist eine einfache App, um Authentifizierung und Middleware ('auth' und 'guest') zu testen. Ich habe die App in localhost ausprobiert, die Authentifizierung und Middleware hat gut funktioniert. Als ich meine App in Fortrabbit ausprobierte, funktionierte die Authentifizierung korrekt, aber es gab ein Problem mit der Middleware. Ich bekommeRedirect Loop Laravel 5.1 in Fortrabbit

Diese Webseite eine Umleitung Schleife hat, ERR_TOO_MANY_REDIRECTS

jedes Mal, wenn ich in der Homepage anmelden.

routes.php:

Route::get('/','[email protected]'); 

Route::group(['middleware' => 'guest'], function() { 

    Route::get('login','[email protected]'); 
    Route::post('login','[email protected]'); 

    Route::get('register','[email protected]'); 
    Route::post('register','[email protected]'); 

}); 

Route::group(['middleware' => 'auth'], function() { 

    Route::get('home','[email protected]'); 
    Route::get('logout','[email protected]'); 

}); 

Authenticate.php für 'Auth' Middleware:

public function handle($request, Closure $next) 
{ 

    if ($this->auth->guest()) { 
     if ($request->ajax()) { 
      return response('Unauthorized.', 401); 
     } else{ 
      return redirect()->guest('/login'); 
    } 

    return $next($request); 
} 

RedirectIfAuthenticated.php für 'Gast' Middleware:

public function handle($request, Closure $next) 
{ 
    if ($this->auth->check()) { 
     return redirect('home'); 
    } 

    return $next($request); 
} 

Gibt es eine Datei/in fortrabbit Einstellung, Ich muss konfigurieren, um diese App ordnungsgemäß auszuführen?

+0

Ihre Auth Middleware sieht für mich aus. Wenn guest() dies tut, wenn nicht Gast umleiten, um sich anzumelden. Sollten Sie nicht zur Anmeldung weitergeleitet werden, wenn Sie auf einer Seite sind, auf der Gäste nicht erlaubt sind? Sie befinden sich in einer Endlosschleife, da Sie sich nach der Anmeldung nicht mehr als Gast registrieren. Sie werden also nach "home" weitergeleitet, was die deaktivierte "auth" auslöst und Sie zur Anmeldung weiterleitet, wodurch "guest" ausgelöst wird, der Sie weiterleitet ... – sniels

+0

Hallo ich denke, das ist ein Session-Bug https://github.com/laravel/framework/issues/8172 können Sie eine Neuinstallation versuchen? Was sind die Session-Treiber in Fort Hase? – Gokigooooks

Antwort

0

Nach config/cache.php mit Fortrabbit memcache Konfiguration (link) ändern, sollten wir nicht nur den Wert ändern CACHE_DRIVER aber auch die SESSION_DRIVER zu memcached in .env Datei

0

Ihre Auth Middleware sieht für mich aus.
Wenn guest() dies tun, wenn nicht Gast umleiten, um sich anzumelden. Sollten Sie nicht zur Anmeldung weitergeleitet werden, wenn Sie auf einer Seite sind, auf der Gäste nicht erlaubt sind?
Sie befinden sich in einer Endlosschleife, da Sie sich nach der Anmeldung nicht mehr als Gast anmelden, sodass Sie nach 'home' weitergeleitet werden, was die 'auth' auslöst und Sie zur Anmeldung weiterleitet, wodurch 'guest' ausgelöst wird leitet Sie ...

ich glaube, Sie auth Middleware sind wie folgt aussehen sollte, Quelle von Laravel on Github

public function handle($request, Closure $next) 
{ 
    if ($this->auth->guest()) { 
     if ($request->ajax()) { 
      return response('Unauthorized.', 401); 
     } else { 
      return redirect()->guest('auth/login'); 
     } 
    } 
    return $next($request); 
} 
+0

Ich habe die else-Anweisung in 'return redirect() -> guest ('/ login') geändert;' und das Ergebnis ist immer noch dasselbe – neemo

+0

@neemo Könnten Sie die Authenticate.php-Datei hochladen, denke ich, das Problem ist ein falsches Klammer. – sniels

+0

Ich habe die App mit der aktualisierten Authenticate.php (aktualisiert oben) erneut auf [mylara.frb.io] (http://mylara.frb.io) hochgeladen und immer noch ungelöst. – neemo