2016-03-21 54 views
0

私はfortrabbitにlaravelアプリケーションをデプロイしました。配備されたアプリは、単に認証とミドルウェア( 'auth'と 'guest')をテストするための単純なアプリです。私はlocalhostでアプリを試してみたところ、認証とミドルウェアはうまくいきました。アプリをfortrabbitで試したところ、認証は正常に機能しましたが、ミドルウェアに問題がありました。私は、リダイレクトループLaravel 5.1 in Fortrabbit

このウェブページにはリダイレクトループが含まれてい得る

私はホーム・ページにログインするたびにERR_TOO_MANY_REDIRECTS。

routes.php

'AUTH' ミドルウェアの
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: 'ゲスト' ミドルウェアの

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

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

    return $next($request); 
} 

fortrabbitという点で、任意のファイル/設定があります私はこのアプリケーションを正しく実行するように設定する必要がありますか?

+0

あなたの認証ミドルウェアは私には見えません。 guest()がこれを行うと、ゲストはログインにリダイレクトされません。ゲストが許可されていないページのゲストの場合、ログインにリダイレクトするべきではありませんか?あなたは無限ループに入っています。なぜなら、ログインすると、もはやゲストではなくなり、「ホーム」にリダイレクトされ、「認証」がオフになり、ログインするようにリダイレクトされるため、リダイレクトする 'ゲスト' ... – sniels

+0

こんにちは私はこれがセッションバグだと思うhttps://github.com/laravel/framework/issues/8172もう一度クリーンインストールを試すことができますか?砦のウサギにはどのようなセッションドライバーが入っていますか? – Gokigooooks

答えて

0

からソースFortrabbitのmemcacheの構成(link)とconfig/cache.phpを変更した後、我々はの価値だけでなく、変更する必要がありますCACHE_DRIVERでもSESSION_DRIVERmemcached.envファイル

0

あなたの認証ミドルウェアが私に見えます。
ゲスト()がこれを行う場合、ゲストはログインにリダイレクトしません。ゲストが許可されていないページのゲストの場合、ログインにリダイレクトするべきではありませんか?
あなたがログインすると、あなたはもはやゲストではなくなり、 'home'にリダイレクトされ、 'auth'がトリガーされ、ログインするようにリダイレクトされ、 'guest'がトリガーされるためです。あなたは私はあなたが認証ミドルウェアは、次のようになりますだと思う...

をリダイレクトし、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

私はelse文を 'return redirect() - > guest( '/ login');に変更しましたが、結果は同じです – neemo

+0

@neemo Authenticate.phpファイルをアップロードできますか?ブラケット。 – sniels

+0

私は更新されたAuthenticate.php(上記で更新)を[mylara.frb.io](http://mylara.frb.io)にアップロードしたがまだ解決していません。 – neemo