当前位置:  开发笔记 > 编程语言 > 正文

从外部PHP检查Drupal身份验证

如何解决《从外部PHP检查Drupal身份验证》经验,为你挑选了2个好方法。

这可能很简单,但我是Drupal的新手.我工作的组织不久前转而使用Drupal,但是在各种外部PHP文件中仍然存在一些遗留代码,这些代码在Drupal中转换为工作会很麻烦.

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

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



1> Henrik Opel..:

我会跟Rimians建议在Drupal本身注册URL(+1),但作为替代方案,你可以"手动"引导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数组的内容



2> Rimian..:

您需要在菜单路由器中包含这些URL,以便Drupal可以引导并检查您的权限.然后你需要找到你的第三方PHP作为包含文件或可能通过一个接口运行.

需要一些聪明的定制工作,但可能不太难.:)

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有