示例#1
0
 public function action_do_reset_password()
 {
     $data = \Tbmt\Arr::initMulti($_REQUEST, ['num' => TYPE_STRING, 'exp' => TYPE_STRING, 'hash' => TYPE_STRING]);
     $newPassword = false;
     if (!empty($data['num']) || !empty($data['exp']) || !empty($data['hash'])) {
         $member = \Member::getByNum($data['num']);
         if ($member && Cryption::validatePasswordResetToken($data['num'], $data['exp'], $member->getEmail(), $data['hash']) && intval($data['exp']) + 3600 * 24 >= time()) {
             $newPassword = bin2hex(mcrypt_create_iv(8, MCRYPT_DEV_URANDOM));
             $member->setPassword($newPassword);
             $member->save();
         }
     }
     return ControllerDispatcher::renderModuleView(self::MODULE_NAME, CURRENT_MODULE_ACTION, ['newPassword' => $newPassword]);
 }