【问题标题】:How to lock out unauthorized users from application?如何从应用程序中锁定未经授权的用户?
【发布时间】:2014-08-27 15:16:24
【问题描述】:

我有一个 Laravel 4 应用程序,它使用 phpCAS 单点登录来验证用户身份。但是,我无法弄清楚如何阻止任何未经授权的用户访问我的任何应用程序 URL。对于这种情况,有很多用户可以通过 phpCAS 登录页面,但如果他们没有管理员权限,则同时应该拒绝访问我的应用程序(拒绝访问页面除外)。

如何在显示我的拒绝访问页面时阻止这些用户访问我的应用程序的 URL?

Routes.php:

Route::get('/adminHome/{USER_ID}', array('as' => 'home', 'uses' => 'AdminController@home'));

Route::get('/adminHome/create/{USER_ID}', 'AdminController@create');

Route::get('/adminHome/{adminID}/delete/{USER_ID}', 'AdminController@delete');

Route::post('/adminHome/store/{USER_ID}', 'AdminController@store');

Route::get('/adminHome', 'AdminController@__construct');

Route::get('/accessDenied', array('as' => 'accessDenied', 'uses' => 'AdminController@accessDenied'));

管理控制器:

public function __construct() 
{
    App::make('CAS');
    $ID = $_SESSION['phpCAS']['attributes']['UDC_IDENTIFIER'];
    $admin = App::make('AdminServices');
    $isValidAdmin = $admin->isAdmin($ID);
    //check DB to see if user has admin access rights
    if ($isValidAdmin && $isValidAdmin->ADMIN == "yes")
        {
            return Redirect::route('home', $ID);
        }
    else
        {   
            return Redirect::route('accessDenied');
        }

}

public function accessDenied()
{
    return View::make('users/accessdenied');
}

视图/用户/访问被拒绝:

<div class="alert alert-danger" role="alert" align="center"><strong>Access Denied. </strong>You do not have permission to access this page. Please notify the system administrator to obtain access.</div>

【问题讨论】:

  • 查看filters的文档
  • 您的代码似乎已经解决了您的问题
  • @MattBurrow,这正是我所需要的。现在使用 filters.php 得到它的工作

标签: php laravel


【解决方案1】:

将 accessDenied 放入单个控制器,然后从 BaseController.e 扩展所有其他控制器

BaseController 可以是

class BaseController extends Controller {
  public function __construct() {
    $this->beforeFilter('auth');
  }
}

那就别管它了,它工作正常。

你可以在 app/filters.php 中做任何你想做的事情,Route::filter('auth', function(){...});

【讨论】:

    猜你喜欢
    • 2012-09-15
    • 2020-02-17
    • 2012-07-21
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    相关资源
    最近更新 更多