簡體   English   中英

laravel 4僅允許登錄用戶瀏覽網站

[英]laravel 4 allow only logged in user to browse the site

我只需要允許登錄用戶瀏覽該站點。 在處理過濾器之后,我遇到的唯一解決方案是組過濾器。 但是,我有很多uri,並且組過濾器會非常耗時。

我已經嘗試檢查用戶是否登錄過filter.php App:之前但它生成“網頁有重定向循環”

        App::before(function($request)
{
    if(Auth::guest())
    {
        return Redirect::guest('login');
    }
});

我只需要允許登錄用戶查看網站頁面,否則將其重定向到登錄頁面。

您的登錄過濾器位於全局過濾器中。 所以,那個過濾器也會在登錄路由前檢查。 如果您不想使用組過濾器,只需確保請求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定義過濾器並檢查guest以阻止非法訪問並將其重定向到登錄后我們會告訴路由器使用這些過濾器, route.php

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

現在只有經過身份驗證的用戶才能訪問受限制的頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM