【问题标题】:Using Drupal for non-Drupal Authentication使用 Drupal 进行非 Drupal 身份验证
【发布时间】:2012-07-17 08:31:25
【问题描述】:

我在 Web 根目录上有一个带有 Drupal 的 Apache 网络服务器。我在根目录的子目录中也有一些非 Drupal 内容。我希望这样非 Drupal 内容无法访问,除非用户先登录 Drupal。

我遇到过使用 mod_auth_mysql (enter link description here),但这不是我想要的。它要求用户登录两次(一次登录 Drupal,一次登录非 Drupal 内容)。

我想解决方案类似于让 .htaccess 运行一个脚本来确定用户是否已登录。这个脚本必须连接到 Drupal 系统。

是否可以使用 .htaccess 运行脚本以确定是否应授予访问权限?

或者有更好的解决方案吗?

【问题讨论】:

    标签: apache drupal


    【解决方案1】:

    我通过部分加载 Drupal(通过 DRUPAL_BOOTSTRAP_SESSION)然后检查 $user 全局来实现这一点。

    <?php
    $base_url = 'http://'.$_SERVER['HTTP_HOST'];
    $drupal_path = "../../";
    $cdir = getcwd();
    chdir($drupal_path);
    require_once 'includes/bootstrap.inc';
    drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
    chdir($cdir);
    
    global $user;
    
    $access_granted = in_array('authenticated user', $user->roles);
        if (!$access_granted):
                //Show page
            else:
                //Show access denied
            endif;
     ?>
    

    【讨论】:

    • 这是我正在寻找的解决方案的一部分,但我想打印“1”而不是“//显示页面”;和“//显示拒绝访问”,打印“0”。然后有一个模块(有点像 mod_auth_external)解析结果并在 webroot 下的子目录中显示页面......我想问题是我只想单点登录,而不是 Apache 询问用户名/密码非 Drupal 内容
    • 我明白了,我以为您只是想要一种方法来保护一些静态 HTML 页面或类似的东西,在这种情况下,您可以将其扔到这些页面上。我不知道有什么解决方案可以满足您的需求。
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多