Php laravel 4只允许登录用户浏览站点

Php laravel 4只允许登录用户浏览站点,php,laravel-4,before-filter,Php,Laravel 4,Before Filter,我需要只允许登录用户浏览网站。在使用过滤器之后,我遇到的唯一解决方案是组过滤器。但是,我有很多uri,使用组筛选器将非常耗时 我已经尝试过检查用户是否登录到filters.php应用程序:before 但它会生成“网页有重定向循环” 我需要只允许登录用户查看站点的页面,否则将其重定向到登录页面。您的登录筛选器位于全局筛选器中。所以,该过滤器在登录路由之前也会进行检查。若不想使用组筛选器,只需确保请求uri与全局筛选器上的登录uri不同,以防止重定向循环 App::before(function(

我需要只允许登录用户浏览网站。在使用过滤器之后,我遇到的唯一解决方案是组过滤器。但是,我有很多uri,使用组筛选器将非常耗时

我已经尝试过检查用户是否登录到filters.php应用程序:before 但它会生成“网页有重定向循环”


我需要只允许登录用户查看站点的页面,否则将其重定向到登录页面。

您的登录筛选器位于全局筛选器中。所以,该过滤器在登录路由之前也会进行检查。若不想使用组筛选器,只需确保请求uri与全局筛选器上的登录uri不同,以防止重定向循环

App::before(function($request)
{
    if(Auth::guest() && $request->path() != 'login')
    {
        return Redirect::guest('login');
    }
});

实现你的
app/filters.php

Route::filter('auth', function()
{
    if (Auth::guest())
        return Redirect::guest('login');
});

Route::filter('auth.basic', function()
{
    return Auth::basic();
});

Route::filter('guest', function()
{
    if (Auth::check()) return Redirect::to('/');
    else
        return Redirect::to('login');
});
如您所见,我为Auth和check out guest定义了过滤器,以防止非法访问,并将其重定向到登录,然后我们会告诉路由器使用这些过滤器,
route.php

Route::any('myRestrictedArea', array('before' => 'auth',   'uses' => 'UserController@myRestrictedArea',   'as' => 'user.myRestrictedArea'));
现在只有经过身份验证的用户才能访问受限页面

Route::any('myRestrictedArea', array('before' => 'auth',   'uses' => 'UserController@myRestrictedArea',   'as' => 'user.myRestrictedArea'));