Laravel 5中的错误重定向内置于用户身份验证中

时间:2015-07-14 10:59:29

标签: php authentication laravel-5

我正在尝试使用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 文件。但无法得到任何满意的结果。

在这方面有人能帮助我吗?

2 个答案:

答案 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);
}