2013-03-19 66 views
1

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

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

回答

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中,您可以创建在根文件,并实现它像this

希望这可以帮助你..

+0

究竟是什么我在寻找。非常感谢! :) – 2013-03-19 12:11:53

+0

很高兴听到它可以帮助你好运。 – 2013-03-19 13:46:21