Сюда из auth библиотеки phpBB необходимо добавить функции формирования и проверки хеша:
phpbb_hash()
phpbb_check_hash()
_hash_gensalt_private()
_hash_encode64()
_hash_crypt_private()
unique_id()
и немного подкрутить setPassword():
public function setPassword($sPassword, $bEncrypt = false) {
if ($bEncrypt) {
//$this->_aData['user_password'] = $this->Security_Salted($sPassword, 'pass');
$this->_aData['user_password'] = $this->phpbb_hash($sPassword);
} else {
$this->setProp('user_password', $sPassword);
}
}
И в экшене логина common/classes/actions/ActionLogin.class.php
меняем механизм проверки хеша:
// * Сверяем хеши паролей и проверяем активен ли юзер
//if ($this->Security_CheckSalted($oUser->getPassword(), $sUserPassword, 'pass') || $this->Security_CheckSalted($oUser->getPassword(), trim($sUserPassword), 'pass')) {
if ($oUser->phpbb_check_hash(trim($sUserPassword), $oUser->getPassword())) {
Ставим плагин и связки юзер+пароль из БД phpBB будут работать.
По аналогии можно запилить поддержку auth механизмов и соответственно уже имеющихся пользователей любых других CMS / форумов / чего угодно. В entity добавляем механизм формирования хеша, в actionLogin — проверку.
Важно понимать, что это только всего лишь адаптация проверки пароля захешированного в phpbb(ex), если вам нужна реальная интеграция двух систем, это всего лишь перввый шажочек по данному направлению.
0 комментариев