我已经部署了一个laravel应用程序到fortrabbit。部署的应用程序是一个简单的应用程序,只用于测试身份验证和中间件('auth‘和’来宾‘)。我已经在本地主机上试用了这个应用程序,认证和中间件运行得很好。当我在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');
});用于'auth‘中间件的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,我必须配置,以正确运行这个应用程序?
发布于 2016-03-30 09:24:58
发布于 2016-03-21 14:56:28
在我看来,你的第二个中间件是不存在的。
如果来宾()这样做,如果不是来宾重定向登录。如果你是不允许客人的页面上的客人,你不应该被重定向登录吗?
你处于一个无穷无尽的循环中,因为一旦你登录,你就不再是客人了,所以你被重定向到“家”,这会触发关闭的'auth‘,然后将你重定向到登录,然后触发’来宾‘来重定向你……
我认为您应该是这样的中间件,来源于吉蒂布号的拉勒维尔
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);
}https://stackoverflow.com/questions/36134031
复制相似问题