我正在尝试使用Laravel 5用户身份验证。在这方面,我的URL在登录前是http://localhost/lara_project/public/auth/login
。我想在成功登录后将用户重定向到http://localhost/lara_project/public/home
。但它会重定向到http://localhost/lara_project/public/
。我试过下面的路线
Route::get('home',['middleware' => 'auth', 'uses' => 'WelcomeController@index']);
Route::get('/', 'HomeController@index');
Route::controllers(['auth' => 'Auth\AuthController','password' => 'Auth\PasswordController']);
位于 routes.php
中我的问题是成功登录用户重定向到http://localhost/lara_project/public/
,如果我想在成功登录后浏览http://localhost/lara_project/public/home
,则显示错误
This webpage has a redirect loop
ERR_TOO_MANY_REDIRECTS
我尝试修改 RedirectIfAuthenticated.php , compiled.php 和 AuthenticatesAndRegistersUsers 文件。但无法得到任何满意的结果。
在这方面有人能帮助我吗?
答案 0 :(得分:1)
转到/app/Http/Controllers/Auth/LoginController.php
您可以将protected $redirectTo = RouteServiceProvider::HOME;
更改为所需的内容。
答案 1 :(得分:0)
修改
RedirectIfAuthenticated.php
,如下所示
public function handle($request, Closure $next)
{
if ($this->auth->check() && !$request->is('/home'))
{
return redirect('/home');
}
return $next($request);
}
请看这里。我正在使用以下某种代码。
public function handle($request, Closure $next)
{
if (!$request->is('authenticate') && !$request->is('authenticate/login') && !Auth::check()) {
return $request->ajax() ? response(array("status"=>'404')) : redirect('authenticate/login');
}
if(Auth::check()) {
if( ! $request->user()->isAdmin() ) {
return $request->ajax() ? response(array("status"=>'404')) : redirect('authenticate/login');
}
return $next($request);
}
return $next($request);
}