我已经为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中是否有任何文件/设置我必须配置才能正常运行此应用程序?
答案 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_DRIVER
到memcached
的值.env
档案