Member 10498938 Ответов: 0

Ошибка Забыли Пароль


я использую tank auth в качестве обработчика входа в code igniter. когда я использую функцию забыть пароль, я получаю ссылку, отправленную по почте http://xx.xx.xx/en//auth/reset_password/2/01b951fd2a02efa2d64f1fe70c2a4e3b. Когда я нажимаю на эту ссылку, она всегда говорит: "ваш ключ активации неверен или истек. Пожалуйста, проверьте свою электронную почту еще раз и следуйте инструкциям."

я изменил сегменты так что он получает правильные сегменты но каким то образом это идет не так если ($this->form_validation->run()). он каким-то образом хочет, чтобы new_password и confirm_new_password были отправлены в качестве почтовых данных, но по ссылке в письме никакие почтовые данные, конечно, не будут отправлены.

Это ошибка в Tank auth, есть ли быстрое исправление (tank_auth забывает шаг, что-то не так настроено?)

код ссылки:
function reset_password()
	{
		$user_id		= $this->uri->segment(3);
		$new_pass_key	= $this->uri->segment(4);

		$this->form_validation->set_rules('new_password', 'New Password', 'trim|required|xss_clean|min_length['.$this->config->item('password_min_length', 'tank_auth').']|max_length['.$this->config->item('password_max_length', 'tank_auth').']|alpha_dash');
		$this->form_validation->set_rules('confirm_new_password', 'Confirm new Password', 'trim|required|xss_clean|matches[new_password]');

		$data['errors'] = array();

		if ($this->form_validation->run()) {								// validation ok
			if (!is_null($data = $this->tank_auth->reset_password(
					$user_id, $new_pass_key,
					$this->form_validation->set_value('new_password')))) {	// success

				$data['site_name'] = $this->config->item('website_name', 'tank_auth');

				// Send email with new password
				$this->_send_email('reset_password', $data['email'], $data);

				$this->_show_message($this->lang->line('auth_message_new_password_activated'));
			} else {	
																// fail
				$this->_show_message($this->lang->line('auth_message_new_password_failed'));
			}
		} else {
			// Try to activate user by password key (if not activated yet)
			if ($this->config->item('email_activation', 'tank_auth')) {
				$this->tank_auth->activate_user($user_id, $new_pass_key, FALSE);
			}
//TODO:
			if (!$this->tank_auth->can_reset_password($user_id, $new_pass_key)) {
				$this->_show_message($this->lang->line('auth_message_new_password_failed'));
			}
		}
                 $data['no_visible_elements'] = true;
		$this->load->tile('base', 'auth/reset_password_form', $data);
	}

Nico_Travassos

Эй, парень, не хочешь ли ты попробовать другую систему аутентификации, очень безопасную?

0 Ответов