我用laravel-3开发的网站有两个不同的部分:
//admin在公共部分,用户可以登录以访问其帐户,而在admin中,只有具有所需权限的用户才允许登录。
现在,我无法区分一个部分中使用的会话和另一个部分中使用的会话,因为它们都使用相同的session配置参数,因此,任何登录公共部分的人都可以进入管理区域。
我一直在考虑为admin部分定义一个环境,并为cookie和path定义不同的值
$environments = array(
// Local
'admin' => array('http://localhost*/admin'), // To handle anything inside section "admin"
'local' => array('http://localhost*'), // To handle everything else
);但是,因为Request::detect_env()只使用url根检查这些规则,所以admin环境从未见过(laravel/core.php:183)。
$root = Request::foundation()->getRootUrl();
$environment = Request::detect_env($environments, $root);发布于 2013-11-22 11:54:37
我再次建议不使用环境来解决这个问题,而是使用带通配符的过滤器来委派验证:
Route::when('admin/*', 'login_admin_filter');但是,如果您真的想使用环境,我理解这样的文档:
在开始文件中,您应该使用一个闭包:
$env = $app->detectEnvironment(function(){
// This condition need to fail if the user isn't an administrator
if($_SESSION['anything'] == 'admin' OR $every_thing_else){
return 'admin';
} else {
return 'production';
});https://stackoverflow.com/questions/20142315
复制相似问题