Место свободно
Здесь вы сможете купить рекламу на данном форуме
Стоимость за 1 день 3руб.

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

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

[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
Репутация: 1

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

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

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

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

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

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

Внешняя авторизация через соц сети [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
Репутация: 1

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

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

Error! писал(а):Источник цитаты дополнительные настройки

Здорово!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внешняя авторизация через соц сети [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
Репутация: 1

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

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

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


Вернуться в «Разработка и тестирование расширений»

Место свободно
Здесь вы сможете купить рекламу на данном форуме
Стоимость за 1 день 2руб.