gpt4 book ai didi

php - 从外部 PHP 检查 Drupal 身份验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:18 24 4
gpt4 key购买 nike

这可能很简单,但我是 Drupal 的新手。我工作的组织不久前切换到了 Drupal,但是在各种外部 PHP 文件中仍然有一些遗留代码,转换成在 Drupal 中工作会很麻烦。

但是,如果能够根据对 Drupal 进行身份验证的人来限制对其中某些页面的访问,那将是非常好的。 (例如,有些页面是管理性的,目前任何知道 URL 的人都可以看到。是的,设计很差,但这就是我继承的......)

我如何从外部 PHP 文件使用 Drupal 检查访问给定页面的人是否已通过身份验证?

最佳答案

我会同意 Rimians 的建议,即在 Drupal 本身 (+1) 中注册 URL,但作为替代方案,您可以“手动”引导 Drupal,然后也可以直接从其他脚本检查用户权限:

// initialize Drupal
// TODO: adjust path according to placement of script (might need to change to Drupal directory first)
require './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// check user access rights
// TODO: Adjust to the permission you want to restrict to, e.g. 'access content' or whatever
if (!user_access('administer nodes')) {
// Insufficient rights, say so
drupal_access_denied();
exit(0);
}
// ... call legacy script

注意:Drupal 在引导过程中做了很多工作,包括一些全局变量的操作和设置,所以一定要仔细检查遗留代码的干扰/冲突(也适用于Rimians 建议)。

如果您只想限制经过身份验证的用户访问,您可以替换 user_access()user_is_logged_in() 打电话.如果想按角色查看,可以添加一个global $user;,查看$user->roles数组的内容

关于php - 从外部 PHP 检查 Drupal 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2496348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com