Php 如何更改Laravel';s身份验证过滤器?
在控制器构造中使用beforeFilter(验证用户登录状态)时Php 如何更改Laravel';s身份验证过滤器?,php,laravel,laravel-4,Php,Laravel,Laravel 4,在控制器构造中使用beforeFilter(验证用户登录状态)时 $this->beforeFilter('auth', array('except' => array('login','handleLogin')); 它会自动将来宾重定向到 www.example.com/login 如何将重定向URL设置为: www.example.com/user/login 在你的app/filters.php中,你可以找到如下内容: Route::filter('auth', fu
$this->beforeFilter('auth', array('except' => array('login','handleLogin'));
它会自动将来宾重定向到
www.example.com/login
如何将重定向URL设置为:
www.example.com/user/login
在你的
app/filters.php
中,你可以找到如下内容:
Route::filter('auth', function($route, $request)
{
if (Auth::guest()) return Redirect::guest('login');
});
您需要将return Redirect::guest('login')
更改为:
return Redirect::guest('user/login');
拉威尔5.2
如果您使用的是Laravel 5.2,则需要在app/Http/Middleware
文件夹中打开Authenticate.php
,并将guest
函数参数更改为您希望将其指向的URL路径:
return redirect()->guest('auth/login')
(清洁安装时的第24行)
拉威尔5.0
如果您使用的是Laravel 5.0,则需要在Http/Middleware
文件夹中编辑RedirectIfAuthenticated.php
更改以下行以满足您的需要:
返回新的重定向响应(url('/home')代码>
对我来说,以下是我想要的:
返回新的重定向响应(url('/')代码>在Laravel 5中*
更改文件的内容
app/Http/Middleware/Authenticate.php
return redirect()->guest('auth/login')代码>
到
return redirect()->guest('login')代码>我也在这上面浪费了几分钟的时间。我想将默认登录处理从mysite.com/login
移动到mysite/admin/login
,在想了想为什么这些解决方案都不起作用后(我一直被重定向到/login),我意识到这是因为login.blade.php视图文件(Laravel 5.3)中的这一行:
现在,表单的action属性将绑定到您在Routes.php
中为postlogin
命名路由指定的任何URL,即:
<form class="form-horizontal" role="form" method="POST" action="{{ route('postlogin') }}">
Route::post('login', ['as' => 'postlogin', 'uses' => 'AuthController@login' ]);
这对我不起作用。我必须在默认的AuthController中添加以下行:protected$redirectPath='/'代码>OP在验证用户之前询问重定向。但谷歌把我带到了这里,@D.Visser的提示正是我所需要的。我正在使用Laravel的安装程序默认设置的代码,我想在成功登录后重定向到/
,而不是/home
。
Route::post('login', ['as' => 'postlogin', 'uses' => 'AuthController@login' ]);