laravel 5中的高级身份验证路由


advanced authentication routes in laravel 5

我目前在登录页面后面有/dashboard路由,登录后会将您带到管理面板。

Route::get('dashboard', ['middleware' => 'auth', function()
{
    return view('dash.dashboard');
}]);

这很好用。但我不知道如果没有登录,如何阻止访问管理面板中的所有链接。我如何阻止所有面板/{}路由?注意——我还在学习拉拉威尔。

您可以使用Route::group()包装所有管理路由,并使它们使用身份验证中间件,例如:

Route::group(['middleware' => ['foo', 'bar']], function()
{
    Route::get('/', function()
    {
        // Has Foo And Bar Middleware
    });
    Route::get('user/profile', function()
    {
        // Has Foo And Bar Middleware
    });
});

请参阅文档

中的更多信息

您可以创建一个控制器,比如DashboardController,并创建一个路由,如下所示:

$router->get('dashboard', 'DashboardController@index');
// calling the index function of your DashboardController

DashboardController中,在构造函数中执行此操作

class DashboardController extends BaseController
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    public function index()
    {
        return view('dash.dashboard');
    }
}

在这个控制器中创建其他函数,所以每次调用这个控制器中的函数时,它都会检查auth中间件。这是一个很好的方法。

另一种方法是使用路由组。

 $router->group(['middleware' => 'auth'], function() {
     $router->get('dashboard', function(){
         return view('dash.dashboard');
     });
 });