如何阻止访客访问未设置或带有前缀的管理路由


How to block guest access to admin routes that arent setup or are prefixed

这是路由文件。

Route::group([
    'prefix' => 'admin',
    'middleware' => 'auth',
    'namespace' => 'Admin'],
function()
{
    Route::resource('dashboard', 'DashboardController');
    //customers
    Route::get('customers', 'CustomerController@index');
    Route::get('customers/view/{id}', 'CustomerController@show');
    //listing
    Route::get('listing/restaurants', 'ListingController@restaurants');
    Route::get('listing/dishes', 'ListingController@dishes');
    //email
    Route::get('emails', 'EmailController@index');
    //settings
    Route::resource('settings', 'SettingController');
    //json
    Route::get('json/dish_schedule', 'JsonController@dish_schedule');
});

当我访问/auth或/admin而没有任何其他分段时,我可以看到管理页面。如何阻止这些并将用户重定向回登录页面?

您指定了中间件auth,查看app/Http/Middleware/Authenticate.php以在用户未通过身份验证时更改中间件的重定向位置。

如果该中间件由于某种原因不可用,则需要考虑创建一个中间件并将其添加到app/Http/Kernel.php文件中。

如果您询问授权(仅允许特定用户访问这些路由),您需要查看策略:http://laravel.com/docs/5.1/authorization#creating-策略