Fortrabbit 中的重定向循环 Laravel 5.1

Redirect Loop Laravel 5.1 in Fortrabbit

我已经为 fortrabbit 部署了一个 laravel 应用程序。部署的应用程序是一个简单的应用程序,仅用于测试身份验证和中间件('auth' 和 'guest')。我已经在 localhost 中尝试了该应用程序,身份验证和中间件工作正常。当我在 fortrabbit 中尝试我的应用程序时,身份验证工作正常,但中间件存在问题。我得到

This webpage has a redirect loop, ERR_TOO_MANY_REDIRECTS

每次登录主页。

routes.php:

Route::get('/','UserController@getIndex');

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

   Route::get('login','UserController@getLogin');
   Route::post('login','UserController@postLogin');

   Route::get('register','UserController@getRegister');
   Route::post('register','UserController@postRegister');

});

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

   Route::get('home','MainController@getHome');
   Route::get('logout','MainController@logout');

});

Authenticate.php 用于 'auth' 中间件:

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 用于 'guest' 中间件:

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

    return $next($request);
}

fortrabbit 中是否有任何 file/setting 我必须正确配置才能 运行 这个应用程序?

你的 auth 中间件让我讨厌。
如果 guest() 执行此操作,如果不是,则 guest 重定向到登录。如果您是不允许访客访问的页面上的访客,您是否应该被重定向到登录?
你处于无限循环中,因为一旦你登录,你就不再是访客,所以你被重定向到 'home',这会触发关闭的 'auth' 并重定向你登录,这会触发 'guest' 重定向你...

我认为你的 auth 中间件应该是这样的,来源来自 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);
}

在使用 Fortrabbit 内存缓存配置 (link) 修改 config/cache.php 后,我们不仅要将 CACHE_DRIVER 的值更改,还要将 SESSION_DRIVER 的值更改为 memcached.env 文件中