在Fortrabbit中重定向循环Laravel 5.1

时间:2016-03-21 14:40:30

标签: php laravel laravel-5 fortrabbit

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

  

此网页有一个重定向循环,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来自'来宾'中间件:

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

    return $next($request);
}

在fortrabbit中是否有任何文件/设置我必须配置才能正常运行此应用程序?

2 个答案:

答案 0 :(得分:0)

你的auth中间件向我看 如果guest()执行此操作,如果不是guest重定向登录。如果您是不允许访客的网页上的访客,您是否不应被重定向登录? 您处于无休止的循环中,因为一旦您登录,您就不再是访客,因此您被重定向到“家”,这会触发“认证”。关闭并重定向到登录,这会触发“访客”#39;它会重定向你...

我认为你的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);
}

答案 1 :(得分:0)

使用Fortrabbit memcache配置(link)修改config/cache.php后,我们不仅应更改CACHE_DRIVER的值,还应更改SESSION_DRIVERmemcached的值.env档案