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

Расширения над которыми ведётся работа или планируется их создание.
Вы можете принимать участие в обсуждении, тестировании, выдвигать свои мнения и наработки.
Аватара пользователя
sanfunkdisco
bb3.0.2
bb3.0.2
Сообщения: 26
Зарегистрирован: 12.11.2014, 20:29

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

Сообщение sanfunkdisco » 20.04.2015, 17:21 #51

Вот как раз в профиле и обновляю, даже те аккаунты, которые были с аватарками при обновлении их лишаются.

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

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

Сообщение sanfunkdisco » 23.04.2015, 23:29 #52

В общем, у меня всё заработало в такой комбинации - правки выше в oAuth_vkontakte.php + включил allow_url_fopen = 1 (аватарки только так подгружаются и для другого мода (наподобие topic image) тоже нужен был включенный allow_url_fopen).

Аватара пользователя
Александр Павлов
bb3.0
bb3.0
Сообщения: 5
Зарегистрирован: 02.06.2015, 02:26

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

Сообщение Александр Павлов » 20.06.2015, 22:40 #53

Приветствую. Отличный мод, все интегрировал, с небольшими правками под себя (у меня есть некоторые доп поля, требуемые при регистрации), все отлично работает, но есть один вопрос и одно пожелание.

Пожелание: добавить индикатор загрузки при соединении с соц сетью. Иногда это происходит не быстро и такое ощущение, что страница зависла, хотя процесс и идет, пользователю не понятно что происходит.

Ну и вопрос, точнее прошу совет.
У меня есть интегрированное приложение в вк, собственно это по сути ифрейм, с одной лишь оазницей, что отбражение там формируется в своем стиле, на что влияет постоянно передаваемый в УРЛ параметр vk=1, а используются обычные скрипты сайта.
Так вот, никак не могу добавить этот параметр, при авторизации в этом приложении, а по сути на сайте, через соц сеть. Для ВК оставил вход только через ВК, но данный параметр теряется где-то толи при получении токена толи еще где то... как только не извращался, но все равно переадресация после логина происходит на страницу сформированную для самого сайта а не приложения. Прошу подсказки, как мне реализовать такую переадресацию, именно на приложение, по сути как я понимаю, это примерно тоже, что и тут мобильный стиль. Подскажите, как это было решено в мобильном стиле?

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

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

Сообщение Anvar » 22.06.2015, 05:00 #54

Что бы получить индикатор загрузки, нужно использовать ajax. Это как раз надо сделать, что бы сделать перенаправление на предыдущую страницу форума.

В первой версии мода страницу для переадресации можно было подкорректировать из админки. Сейчас можно подправить в ручную, в api файлах соц сети.
Не пишите в ЛС и ICQ вопросы которые можете задать на форуме!
Заказы по разработке не выполняю!

Аватара пользователя
Александр Павлов
bb3.0
bb3.0
Сообщения: 5
Зарегистрирован: 02.06.2015, 02:26

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

Сообщение Александр Павлов » 27.06.2015, 17:43 #55

Anvar, да, я понимаю, о чем Вы говорите, но нужно оставить две переадресации, то-есть выбор по тому откуда вход (с самого сайта или из приложения).
Сейчас у меня так:

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

	function main($id, $mode)
	{
		global $config, $user, $phpbb_root_path, $phpEx, $vk;
		
		$vk = (!$vk) ? request_var('vk', 0) : $vk;
		$user->add_lang('mods/info_ucp_social');
		
		if (!$config['vkontakte_config']) 
		{
			trigger_error($user->lang['SOC_MESSAGE_OFF']);
		}

		if($vk == 1)
		{
			$redirect_uri = generate_board_url() . '/ucp.' . $phpEx . '?mode=vkontakte&vk=1';
		}
		else
		{
			$redirect_uri = generate_board_url() . '/ucp.' . $phpEx . '?mode=vkontakte';
		}

		$token = request_var('token', '');
		$code = request_var('code', '');

		...........
		
		
Но смысл в том, что при получении токена, или временного кода, редирект идёт на эту же страницу авторизации соц сети, для дальнейшей обработки,и собственно самой авторизации, и добавленный мною параметр vk=1 теряется, тем самым далее авторизация происходит без него, и как итог, после авторизации в приложении открывается полная версия сайта.
Вот это я никак побороть не могу, хотя у Вас в мобильном стиле же всё Ок...

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

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

Сообщение Anvar » 27.06.2015, 18:45 #56

В мобильном стиле данные хранятся в браузере, в cookies. Может быть вам стоит также добавить куки с именем vkontakte и делать проверку его наличия?

Аватара пользователя
Александр Павлов
bb3.0
bb3.0
Сообщения: 5
Зарегистрирован: 02.06.2015, 02:26

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

Сообщение Александр Павлов » 27.06.2015, 19:46 #57

Anvar, тоесть получается, переход на полную версию очищает эти кукисы? Как вариант возможно, конечно, но есть минус, придется делать проверку и очистку при полном просмотре, иначе будут открываться не те шаблоны....
Да и вторым окном в браузере не получится открыть, возможно же, что пользователь откроет в одной вкладке приложение, а во второй фул сайт.

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

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

Сообщение Anvar » 27.06.2015, 19:56 #58

Переход на полную удаляет куки с компьютера, переход на мобильную удаляет у мобил, другие не затрагиваются.
По этому лучше добавить свои и удалять их когда захотите.

Аватара пользователя
Александр Павлов
bb3.0
bb3.0
Сообщения: 5
Зарегистрирован: 02.06.2015, 02:26

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

Сообщение Александр Павлов » 28.06.2015, 02:40 #59

Решил проблему без кукисов )) Вдруг пригодится кому...

Собственно проблема заключалась в том, что невозможно было передать в строке при запросе токена доп. параметр, тоесть & отрезало его, видимо в вк допустим только redirect_uri с одним параметром после ?
Ну чтож, тогда передаем его не как vkontakte, а как vkontakte_vk
И создаем в ucp.php еще один кейс, в котором и создаем этот параметр ))))

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

	case 'vkontakte_vk':
		$vk=1;
		if ($user->data['is_registered'] && !$auth->acl_get('u_social_add'))
		{
			trigger_error($this->user->lang['SOC_MESSAGE_OFF']);
		}
		$module->load('oAuth', 'vkontakte');
	break;


и все :) дальше объявив в модулях его глобальным, просто проверяем его и формируем нужный редирект соответственно )))

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