路由过滤器加载功能无论如何

Posted

技术标签:

【中文标题】路由过滤器加载功能无论如何【英文标题】:Route filters loading function no matter what 【发布时间】:2014-10-06 07:11:50 【问题描述】:

这样做的问题是无论用户是否登录,都会加载该函数。我需要仅在用户登录时才加载帐户功能。我有Auth::check() 然后在功能本身中重定向,但有人告诉我有一种方法可以在路由中执行此操作。

路线:

 Route::get('account', ['before' => 'auth', 'uses' => 'SiteController@account']);

标准身份验证过滤器 Laravel:

 Route::filter('auth', function()
 
 if (Auth::guest())
 
    if (Request::ajax())
    
        return Response::make('Unauthorized', 401);
    
    else
    
        //return Redirect::guest('login');
    

);

【问题讨论】:

【参考方案1】:

您的最后一次尝试应该会奏效。只需去掉前面的斜线:

Route::get('account', ['before' => 'auth', 'uses' => 'SiteController@account']);

【讨论】:

不知道我是应该编辑问题还是只做一个新问题。我检查了app/filters 中的过滤器,它说如果没有登录应该给出 401 页。无论哪种方式,函数正在加载,如果没有登录,我只会在下一页上得到一个未定义的变量

以上是关于路由过滤器加载功能无论如何的主要内容,如果未能解决你的问题,请参考以下文章

使用路由网关的服务过滤功能

理解:对OSPF引入路由进行过滤以及如何实现对OSPF发布的路由进行过滤

服务网关zuul之四:zuul网关配置

路由交换:路由策略与策略路由

如何使 IRouteConstraint 过滤路由

第六章API服务网关(Zuul) 下