我在 Joomla 之外创建了一个可以成功生成 Joomla 密码的脚本:
// I copied the JUserHelper class from Joomla here
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($password, $salt);
$psw = $crypt.':'.$salt;
我的问题是,我如何将上面生成的这个新 crypt:salt 与 Joomla 数据库中现有用户的密码进行比较,并知道提供给上面脚本的密码是否是该用户在数据库?
最佳答案
在 joomla 3.4.5 中:
if (!class_exists("JFactory")) {
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__)); // specify path to joomla base directory here
define('DS', DIRECTORY_SEPARATOR);
require_once ( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once ( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
$mainframe = & JFactory::getApplication('site');
$mainframe->initialise();
}
$user = JFactory::getUser(); // or: getUser($id) to get the user with ID $id
$passwordMatch = JUserHelper::verifyPassword($entered_password, $user->password, $user->id);
关于php - 自定义 PHP 函数以验证 Joomla 中的正确密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015106/