1

我需要为丢失密码的用户生成令牌/验证码,但我不能依赖现有的 Joomla 安装,因为 1)它是一个非常旧的 Joomla 安装(1.5.15)和 2)它是一个我的项目的要求。我不能碰任何东西,因为它是第三方工作,但我需要为移动用户(现在是 iOS 和 Android)实现密码恢复系统,并且我需要知道密码恢复系统使用哪种算法。

谁能告诉我它是如何工作的?

4

1 回答 1

2

在 Joomla 你可以检查以下文件

components/com_users/controller/reset.php
components/com_users/modles/reset.php

在控制器文件中,您可以找到一个函数名称request();

它使用模型的功能processResetRequest();

在此功能中,它将使用以下代码创建激活令牌

     // Set the confirmation token.
$token = JUtility::getHash(JUserHelper::genRandomPassword());
$salt = JUserHelper::getSalt('crypt-md5');
$hashedToken = md5($token.$salt).':'.$salt;

$user->activation = $hashedToken;

joomla 也在验证令牌是否正确,然后它将允许用户创建新密码。如果你想这样做,你可以使用以下代码作为 joomla 标准密码。

jimport('joomla.user.helper');
 $salt = JUserHelper::genRandomPassword(32);
 $crypt = JUserHelper::getCryptedPassword($password_choose, $salt);
 $password = $crypt.':'.$salt;

上面的代码正在创建 joomla 密码。

如果您打算将其用于移动设备并且无需编辑核心 joomla,您可以在 root 上创建一个文件并像这样实现它

希望这可以帮助你..

于 2013-03-19T11:40:53.100 回答