Laravel:ERR_TOO_MANY_REDIRECTS

问题描述 投票:0回答:2

我正在尝试在 Laravel 中编写基本身份验证系统,这会导致重定向循环。

首先我只访问“localhost”域,然后当我什至没有经过身份验证时它会将我发送到 /home 并抛出 chrome 错误。

路线:

Route::group(['middleware' => 'platform', 'namespace' => 'Ec9'], function() {

    Route::group(['prefix' => 'platform'], function() {
        Route::get('/restricted', ['as' => 'platform.restricted', 'uses' => 'PlatformController@getRestrictedView']);
        Route::get('/unlock_route', ['as' => 'platform.unlock_route', 'uses' => 'PlatformController@getUnlockRouteView']);
    });

    Route::group(['domain' => 'localhost', 'midleware' => 'frontend', 'namespace' => 'Frontend'], function() {

        Route::group(['middleware' => 'guest', 'namespace' => 'Guest'], function() {

            Route::group(['prefix' => 'setup'], function() {
                Route::any('/language', ['as' => 'frontend.guest.setup.language', 'uses' => 'LandingController@getSetupLanguageView']);
                Route::any('/welcome', ['as' => 'frontend.guest.setup.welcome', 'uses' => 'LandingController@getSetupWelcomeView']);
            });

            Route::get('/', ['as' => 'frontend.guest.landing', 'uses' => 'LandingController@redirect']);

            Route::get('/login', ['as' => 'frontend.guest.login', 'uses' => 'LoginController@getLoginView']);
            Route::post('/login', ['as' => 'frontend.guest.login', 'uses' => 'LoginController@onLoginPost']);

        });

        Route::group(['middleware' => 'auth', 'namespace' => 'User'], function() {
            Route::get('/home', ['as' => 'frontend.guest.login', 'uses' => 'HomeController@getHomeView']);

            Route::group(['prefix' => 'account'], function() {
                Route::get('/logout', ['as' => 'frontend.user.account.logout', 'uses' => 'AccountController@logout']);
                Route::get('/settings', ['as' => 'frontend.user.account.settings', 'uses' => 'AccountController@getAccountSettingsView']);
            });
        });

    });

});

着陆控制器:

<?php
namespace App\Http\Controllers\Ec9\Frontend\Guest;

use App\Http\Controllers\Controller;
use Redirect;
use Auth;

class LandingController extends Controller
{
    public function redirect() {
        if (Auth::check()) {
            return redirect()->route('frontend.user.home');
        }

        return redirect()->route('frontend.guest.login');
    }
}

LoginController 和 HomeController 函数只是返回视图,我认为如果我发布整个类,这只是用太多代码来垃圾邮件问题,所以我只是解释了它是如何绘制图片的

php laravel
2个回答
3
投票

您有您的家乡路线名称,与您的登录路线相同。

Route::get('/home', ['as' => 'frontend.guest.login', 'uses' => 'HomeController@getHomeView']);

您可以通过给它自己的名称来解决这个问题,就像这样。

Route::get('/home', ['as' => 'frontend.user.home', 'uses' => 'HomeController@getHomeView']);

0
投票

就我而言,路线很好,专门删除我的网站(并非所有网站)的 cookie 对我很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.