首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 3如何根据URL使用不同的会话设置

Laravel 3如何根据URL使用不同的会话设置
EN

Stack Overflow用户
提问于 2013-11-22 10:15:51
回答 1查看 389关注 0票数 0

我用laravel-3开发的网站有两个不同的部分:

  • public.哪个url是/
  • 管理.哪个url是/admin

在公共部分,用户可以登录以访问其帐户,而在admin中,只有具有所需权限的用户才允许登录。

现在,我无法区分一个部分中使用的会话和另一个部分中使用的会话,因为它们都使用相同的session配置参数,因此,任何登录公共部分的人都可以进入管理区域。

我一直在考虑为admin部分定义一个环境,并为cookiepath定义不同的值

代码语言:javascript
复制
$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)

代码语言:javascript
复制
$root = Request::foundation()->getRootUrl();
$environment = Request::detect_env($environments, $root);
EN

回答 1

Stack Overflow用户

发布于 2013-11-22 11:54:37

我再次建议不使用环境来解决这个问题,而是使用带通配符的过滤器来委派验证:

代码语言:javascript
复制
Route::when('admin/*', 'login_admin_filter');

但是,如果您真的想使用环境,我理解这样的文档:

在开始文件中,您应该使用一个闭包:

代码语言:javascript
复制
$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';
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20142315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档