[API, OAuth] Внешняя авторизация для phpBB3.0

Расширения над которыми ведётся работа или планируется их создание.
Вы можете принимать участие в обсуждении, тестировании, выдвигать свои мнения и наработки.
Ответить Вложения 5
Аватара пользователя
Anvar
Администратор
Администратор
Сообщения: 1309
Зарегистрирован: 08.08.2014, 14:26

[API, OAuth] Внешняя авторизация для phpBB3.0

Сообщение Anvar » 24.08.2014, 09:18 #1

Модуль Авторизации и регистрации на форуме phpBB + Привязка аккаунтов.

Взаимодействие: Вконтакте, Одноклассники, Facebook, Yandex, Mail.Ru - пользователи социальных сетей - ваш форум phpBB.
OAuth API на прямую - без посредников!

Подробнее: Авторизация через социальные сети для phpBB3.x

Ниже скрины предыдущих версий.
Вложения
Привязка аккаунтов соц сетей - screen_ucp.png
Привязка аккаунтов соц сетей
[API, OAuth] Внешняя авторизация для phpBB3.0 - auth_api.png
[API, OAuth] Внешняя авторизация для phpBB3.0 - mail_auth_api.png
Не пишите в ЛС и ICQ вопросы которые можете задать на форуме!
Заказы по разработке не выполняю!

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 12.11.2014, 20:52 #2

Спасибо за классный мод.

Из Вконтакте не подтягивается email, phpbb говорит, что слишком короткий адрес. С этим можно что-то сделать? Хочется максимальной простоты авторизации, через Яндекс, например, авторизуется без лишних вопросов.

И ещё, может лучше в качестве логина для форума брать из соцсетей не только имя но и фамилию? Опять же - как с яндексом.

Аватара пользователя
Anvar
Администратор
Администратор
Сообщения: 1309
Зарегистрирован: 08.08.2014, 14:26

Внешняя авторизация через соц сети [API, OAuth]

Сообщение Anvar » 13.11.2014, 08:57 #3

Вконтакте и одноклассники не отдают e-mail, по этому пользователь попадает в форму для заполнения.

Из соц сетей в первую очередь пытается взять логин, если их нет, то имя. Можно сделать что-бы во втором случае присутствовало и имя и фамилия, только в настройках phpBB обычно стоит ограничение на максимальное количество символов в имени пользователя.

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

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 13.11.2014, 14:06 #4

Error! писал(а):QR_BBPOST дополнительные настройки
Здорово!

Вообще, даже в стандартные 20 символов укладывается большинство имен и фамилий.

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 15.11.2014, 15:26 #5

Ещё бы очень было удобно, если бы группа для пользователя из соц. сетей устанавливалась по умолчанию.

Аватара пользователя
Anvar
Администратор
Администратор
Сообщения: 1309
Зарегистрирован: 08.08.2014, 14:26

Внешняя авторизация через соц сети [API, OAuth]

Сообщение Anvar » 15.11.2014, 19:37 #6

sanfunkdisco, Она устанавливается по умолчанию. Если выбрана группа "Зарегистрированные", то ни каких других не устанавливается.

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 15.11.2014, 20:00 #7

Error!, у меня выбрана своя отдельная группа для каждой соцсети, пользователь в неё попадает, но по умолчанию все равно стоит "Зарегистрированные".
Может этот как-то связано с тем, что ещё включена группа "новые пользователи", в которую попадают все только что зарегистрированные?

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 15.11.2014, 20:40 #8

Не слишком принципиально, но ссылка на профиль FB в профиле прописывается не очень красивая - https://www.facebook.com/app_scoped_use ... 6759349586. Если можно исправить, было бы хорошо.

Аватара пользователя
Anvar
Администратор
Администратор
Сообщения: 1309
Зарегистрирован: 08.08.2014, 14:26

Внешняя авторизация через соц сети [API, OAuth]

Сообщение Anvar » 15.11.2014, 20:52 #9

Используйте такой код в social_register.php (если он отличается), для установки группы по умолчанию.

Код: Выделить всё

		if (!sizeof($error))
		{
			$user_id = user_add($user_row, $cp_data);

			if ($user_id === false) 
			{
				trigger_error('NO_USER', E_USER_ERROR);
			}

			$data = array(
				'user_id'				=> $user_id,
				'user_soc_id'			=> $profile->socid,
				'user_soc_token'		=> $profile->token,
				'user_soc_provider'		=> $profile->provider,
				'user_soc_nikname'		=> utf8_normalize_nfc($profile->nickname),
				'user_soc_last_name'	=> utf8_normalize_nfc($profile->last_name),
				'user_soc_first_name'	=> utf8_normalize_nfc($profile->first_name),
				'user_soc_link'			=> (string)$profile->website,
			);
			$db->sql_query('INSERT INTO ' . SOC_USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $data));

			if ($user_row['group_id'] != $profile->group)
			{
				$sql = 'INSERT INTO ' . USER_GROUP_TABLE . ' ' . $db->sql_build_array('INSERT', array(
					'user_id'		=> (int) $user_id,
					'group_id'		=> (int) $profile->group,
					'user_pending'	=> 0)
				);
				$db->sql_query($sql);
				// Now make it the users default group...
				group_set_user_default($profile->group, array($user_id), false);
			}

			if ($config['email_enable'])
Надеюсь поймёте где заменить.

В facebook.api.php
ссылку можно изменить в этом участке:

Код: Выделить всё

$profile->website = ((!empty($socprofile['link'])) ? $socprofile['link'] : '');
Что-бы убрать совсем, то заменить на:

Код: Выделить всё

$profile->website = '';

Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

Внешняя авторизация через соц сети [API, OAuth]

Сообщение sanfunkdisco » 15.11.2014, 21:08 #10

Да, спасибо, с группой теперь всё отлично.

Ответить Вложения 5