1

所以基本上我公司网站的一部分是使用 Drupal 7 加上商务插件运行的。我想知道是否有一种安全的方法可以在网站的其他不使用 Drupal 的部分中利用该系统中已经存在的用户。这是为了避免由于程序之间缺乏通信而为一个用户拥有两个单独的用户帐户。有没有一种安全的方法可以根据 Drupal 数据库中的信息对我的应用程序中的用户进行身份验证,或者有一种标准的方法来解决这个问题?Drupal 支持数据库是一个庞大、奇怪、复杂的庞然大物,我不想激怒它。

我唯一需要做的就是确定如果用户通过我的身份验证表单登录,他们的凭据是否有效。如果我可以通过使用 Drupal 登录系统来做到这一点(也许通过传递一个 url 来转发),那就太好了。或者是否有一个已经管理这个的脚本?

我还希望能够根据我确信 Drupal 软件设置的 cookie 来确定用户是否已经登录并且仍然记得。

参考资料、我可以在 Drupal 核心中使用的适用脚本等将不胜感激。我是一个对 Drupal 一无所知的人,但拥有良好的 PHP/知识,因为我已经专业从事 Web 开发多年。

4

3 回答 3

4

是的,这很容易,您可以通过以下两种方式之一来实现。

选项 1,使用服务模块,您可以使用 REST 登录/验证用户。

选项2,您可以编写自定义代码。您可以从用户模块中包含Drupal Boostrap或您需要的单个文件。然后只需使用user_authenticate()函数来检查用户名和密码。

于 2012-11-26T18:44:23.807 回答
1

使用使用 Drupal 引导程序的 PHP,
这个文件应该在 drupal 安装里面
这很容易

//set the working directory to your Drupal root
define("DRUPAL_ROOT",     "/var/www/drupal/");

//require the bootstrap include
require_once 'includes/bootstrap.inc';

//Load Drupal
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
//(loads everything, but doesn't render anything)

$name = 'admin';
$password = 'admin';

//use drupal user_authenticate function
if(!user_authenticate($name, $password)){
    echo 'invalid';
}else{
    echo 'valid';
}
于 2013-06-25T05:26:57.243 回答
0

您还可以使用服务模块使用 xml,请在此处查看详细信息http://drupal.org/node/1105470

于 2012-11-26T21:41:21.167 回答