JustinBieber
@JustinBieber
Звизда

Где храниться пароль админки сайта на yii?

UserIdentity проверил, там

<?php

/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	const ERROR_ACCESS_DENIED = -1;
	private $_id;

	public function authenticate()
	{
		sleep(5);
		$record = User::model()->findByAttributes(array('user_login'=>$this->username));

		if (is_null($record))
			$this->errorCode=self::ERROR_USERNAME_INVALID;
		elseif ($record->user_pswd !== md5(md5($this->password)))
			$this->errorCode=self::ERROR_PASSWORD_INVALID;
		elseif ($record->user_hospital_id !== HospitalList::model()->getHospitalId())
			$this->errorCode=self::ERROR_ACCESS_DENIED;
		else 
		{
			$this->_id = $record->user_id;
			$this->setState('title', $record->user_login);
			$this->errorCode=self::ERROR_NONE;
		}
		
		// return ($this->errorCode === -1) ? $this->errorCode : false;
		return !$this->errorCode;
	}

	public function getId()
	{
		return $this->_id;
	}
}


БД проверил, там нету, выкладываю какие папки есть

453053f70f7a4893a8a6143d760b7933.png
  • Вопрос задан
  • 984 просмотра
Пригласить эксперта
Ответы на вопрос 4
Поле user_pswd в таблице пользователей в базе
Ответ написан
supervaleha
@supervaleha
Web-development
В базе данных, в таблице users есть поле password_hash.

Хеш пароля по умолчанию хранится в нем.
Ответ написан
doniys_a
@doniys_a
Backend-разработчик (Php, node.js, python, ruby)
в yii1 нет поля password_hash, я могу ошибаться, но, кажись, там просто поле password и в качестве хеша - md5.
Из коробки yii не поддерживает авторизацию через DB
https://github.com/yiisoft/yii/blob/master/framewo...
Обычно наследование CWebUser и переписывание метода для проверки пользователя из DB позволяло это.
Вы можете просто написать миграцию для изменения пароля пользователя, запустить ее и спокойно входить, либо просто сгенерить новый хеш md5 (только вначале проверьте, что при проверке пароля используется именно md5), засунуть его в поле password или как оно называется в таблице user и авторизироваться.
Ответ написан
JustinBieber
@JustinBieber Автор вопроса
Звизда
оказалось все намного сложнее, спасибо за поддержку всем ))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы