繁体   English   中英

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

[英]advanced authentication routes in laravel 5

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

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

这很好。 但是我不知道如何在未登录的情况下阻止访问管理面板中的所有链接。如何防止所有仪表板/ {}路由? 注意-我还在学习laravel。

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

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');
     });
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM