Перейти к контенту
  • 0

Интеграция с Socail Engine


Вопрос

Как мне заставить движок форума принимать пользователей, пришедших с SocailEngine-сети без лишних регистраций и авторизаций? Дело в том, что хочется заменить скрипт форумов на SE нормально стоящим IPB. Чтобы пользователи сети, тыкая в кнопку "Фоорумы" на сетевом сайте переносились нормально на сайт с форумом.

 

Я так понимаю, надо копать External Database в разделе "Управление модулями авторизации"? А как там оно настроить?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

В общем, кое-что накопал. Но оно не работает. В SE есть MD5 с "солью" - в базе хранятся поля user_password и user_code, соответственно. Есть ещё user_username. Всё это можно вбить в настройки External Database и поставит md настройках MD5/ И это всё счастливо не заработает.

 

Вот, что удалось накопать по SE:

 

/include/class_user.php

  if( $method>0 )
{
  if( !empty($this->user_salt) )
  {
	list($salt1, $salt2) = str_split($this->user_salt, ceil(strlen($this->user_salt) / 2));
	$salty_password = $salt1.$user_password.$salt2;
  }
  else
  {
	$salty_password = $user_password;
  }
}

switch( $method )
{
  // crypt()
  default:
  case 0:
	$user_password_crypt = crypt($user_password, '$1$'.str_pad(substr($this->user_salt, 0, 8), 8, '0', STR_PAD_LEFT).'$');
  break;

  // md5()
  case 1:
	$user_password_crypt = md5($salty_password);
  break;

  // sha1()
  case 2:
	$user_password_crypt = sha1($salty_password);
  break;

  // crc32()
  case 3:
	$user_password_crypt = sprintf("%u", crc32($salty_password));
  break;
}

return $user_password_crypt;
 }

 

 

		 // SET USER SALT
	  $this->user_salt = $this->user_info['user_code'];

 

 

installsql.php

mysql_query("CREATE TABLE `se_users` (
 `user_id` int(9) NOT NULL auto_increment,
 `user_level_id` int(9) NOT NULL default '0',
 `user_subnet_id` int(9) NOT NULL default '0',
 `user_profilecat_id` int(9) NOT NULL default '0',
 `user_email` varchar(70) collate utf8_unicode_ci NOT NULL default '',
 `user_newemail` varchar(70) collate utf8_unicode_ci NOT NULL default '',
 `user_fname` varchar(64) collate utf8_unicode_ci NOT NULL default '',
 `user_lname` varchar(64) collate utf8_unicode_ci NOT NULL default '',
 `user_username` varchar(64) collate utf8_unicode_ci NOT NULL default '',
 `user_displayname` varchar(128) collate utf8_unicode_ci default NULL,
 `user_password` varchar(50) collate utf8_unicode_ci NOT NULL default '',
 `user_password_method` tinyint(1) NOT NULL default 0,
 `user_code` varchar(16) collate utf8_unicode_ci NOT NULL default '',

 

 

А в IPB в admin/sources/loginauth/external/auth.php

 

есть такая функция всего лишь

 

 

   /**
* Compare passwords
*
* @access   private
* @param	string		  Plain text password
* @param	array		   Record from the remote table
* @return   boolean
*/
  private function _comparePasswords( $password, $remote_member )
  {
	$check_pass = $password;

	switch( REMOTE_PASSWORD_SCHEME )
	{
			case 'md5':
					$check_pass = md5($password);
			break;

			case 'sha1':
					$check_pass = sha1($password);
			break;
	}

	if ( $check_pass == $remote_member[ REMOTE_FIELD_PASS ] )
	{
			return true;
	}
	else
	{
			return false;
	}
  }

 

 

И вот как бы со всем этим добром взлететь? То есть, каких пилюлек прописать функции сравнения паролей, чтобы она проверила пароль от SE нормально?

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.