Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
siv1987

Плагин авторизации через VK для IPS 4.x

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

Есть какие-нибудь соображения?

Плагин включен? Именно плагин, а не метод авторизации.

Поделиться сообщением


Ссылка на сообщение

Уже не помню, что там было, но проблема, видимо, ушла. В любом случае спасибо за ответ.

 

Пользуясь случаем, хотел бы спросить. В грядущей версии 4.3 планируется внедрение полной поддержки OAuth 2.0, где можно будет привинчивать авторизацию через любые сервисы, поддерживающие упомянутый протокол:

 

https://invisioncommunity.com/news/product-updates/43-sign-in-from-other-sites-using-oauth-r1058/

 

Стоит ли ждать инструкций по переносу данных с этого плагина на встроенный функционал?

Поделиться сообщением


Ссылка на сообщение
Стоит ли ждать инструкций по переносу данных с этого плагина на встроенный функционал?

Для начала нужно дождаться выхода 4.3 и посмотреть на реализацию.

Поделиться сообщением


Ссылка на сообщение

Пришло письмо от ВК:

 

Здравствуйте!

 

Вы получили это сообщение, так как являетесь администратором приложения https://vk.com/app*** на нашей платформе.

 

Сейчас Ваше приложение генерирует большое количество ошибок — это значит, что часть функциональности в приложении или на Вашем сайте недоступна пользователям. К примеру, может не работать авторизация.

 

Ранее, если Вы не указывали в своём запросе параметр v (версию), он автоматически считался равным 3.0. Теперь этот параметр стал обязательным для всех запросов к API.

 

Сервер вернет ошибку 8 на запрос, в котором не указана версия API. Если методы в Вашем приложении стали возвращать ошибку "invalid request" на любой запрос или сломалась авторизация — укажите в запросах используемую версию API для возобновления работы.

 

Более подробно о грядущих изменениях мы писали здесь: https://vk.com/dev/version_update

 

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

 

С уважением,

Команда ВКонтакте

 

Хотя с виду вроде пока работает.

Поделиться сообщением


Ссылка на сообщение

Аналогичное сообщение прошло.

Поделиться сообщением


Ссылка на сообщение

Во все запросы, отправляемые к api VK нужно добавить параметр v с указанием версии.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо, получается

 

Перед: \system\Login\vk.php

 

$userData = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$details[1]}&access_token={$details[0]}&fields=first_name,last_name,screen_name,bdate,nickname" )->request()->get()->decodeJson();

 

Перед: \system\Login\vk.php

 

$userData = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$response['user_id']}&access_token={$response['access_token']}&fields=first_name,last_name,screen_name,bdate,nickname" )->request()->get()->decodeJson();

 

 

Перед: \applications\core\sources\ProfileSync\vk.php

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}" )->request()->get()->decodeJson();

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}&fields=photo_max_orig&https=" . intval( \IPS\Request::i()->isSecure() ) )->request()->get()->decodeJson();

 

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}" )->request()->get()->decodeJson();

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}&fields=status" )->request()->get()->decodeJson();

 

 

Добавить: ?

$params['v'] = '5.73';

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Добавить: ?

$params['v'] = '5.73';

А это откуда взялось?

 

&access_token

заменить на

&v=5.73&access_token

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Это же другой плагин. Я пользуюсь плагином от siv1987 из этой темы.

Поделиться сообщением


Ссылка на сообщение

- Создать хендлер для VK по инструкции.

 

- Создать в корне php-файл со следующим содержимым

<?php

require_once 'init.php';
\IPS\Dispatcher\External::i();

if (!\IPS\Member::loggedIn()->isAdmin())
{
\IPS\Output::i()->redirect(\IPS\Http\Url::internal(''));
}

try
{
$vkLoginId = 10000;
$loginMethod = \IPS\Db::i()->select('*', 'core_login_methods', array('login_id=?', $vkLoginId))->first();
}
catch (\Exception $e)
{
\IPS\Output::i()->error('VK-метод авторизации не обнаружен', '1-VKCONVERT/1');
}

try
{
$test = \IPS\Db::i()->select('vk_id, vk_token', 'core_members')->first();
}
catch (\Exception $e)
{
\IPS\Output::i()->error($e->getMessage(), '1-VKCONVERT/2');
}

foreach (\IPS\Db::i()->select('member_id, vk_id, vk_token', 'core_members', array('vk_id>0')) as $member)
{
\IPS\Db::i()->insert('core_login_links', array(
	'token_login_method' => $vkLoginId,
	'token_member'		 => $member['member_id'],
	'token_identifier'	 => $member['vk_id'],
	'token_linked'		 => TRUE,
	'token_access_token' => $member['vk_token'],
), false, true);
}

10000 заменить на ID созданного хендлера

 

- Обратиться к файлу

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Подниму тему как на 4.4.5 организовать регистрацию/авторизация через VK?? пробовал различные варианты все не работают на 4.4, рабочий один вариант это https://invisioncommunity.com/files/file/9396-vkcom-integration/ но он тяжёлый зараза создает по 20-25забросов в бд при просмотре темы не понятно для чего.

Может есть у кого легкое решение для регистрации/авторизации через VK??

Поделиться сообщением


Ссылка на сообщение

Подниму тему как на 4.4.5 организовать регистрацию/авторизация через VK??

Встроенный метод с созданием хендлера чем не устраивает?

Поделиться сообщением


Ссылка на сообщение

Встроенный метод с созданием хендлера чем не устраивает?

не хочет работать, вроде все настроил по инструкции что тут https://invisioncommunity.com/news/product-updates/43-sign-in-from-other-sites-using-oauth-r1058/

то есть настройки выглядят так https://yadi.sk/i/reJjBJcAt2xQBw

единственное не понял про настройку User Information Endpoint у меня она выглядит так https://api.vk.com/method/users.get?fields=screen_name,photo_medium возможно тут и есть ошибка

При попытке войти выдает ошибку "Что-то пошло не так. Пожалуйста, попробуйте еще раз." в системных логах ошибки

Array
(
   [error] => Array
       (
           [error_code] => 8
           [error_msg] => Invalid request: v is required. Version param should be passed as "v". "version" param is invalid and not supported.
           [request_params] => Array
               (
                   [0] => Array
                       (
                           [key] => fields
                           [value] => screen_name,photo_medium
                       )

                   [1] => Array
                       (
                           [key] => method
                           [value] => users.get
                       )

                   [2] => Array
                       (
                           [key] => oauth
                           [value] => 1
                       )

               )

       )

)

#0 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(449): IPS\_Log::log('Array\n(\n    [er...', 'oauth_custom')
#1 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(294): IPS\Login\Handler\OAuth2\_Custom->_userData('0740fa1a0d3ecb6...', 'response[0][uid...')
#2 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(384): IPS\Login\Handler\OAuth2\_Custom->authenticatedUserId('0740fa1a0d3ecb6...')
#3 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(368): IPS\Login\Handler\_OAuth2->_processAccessToken(Object(IPS\Login), Array)
#4 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(164): IPS\Login\Handler\_OAuth2->_handleAuthorizationResponse(Object(IPS\Login))
#5 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Login.php(316): IPS\Login\Handler\_OAuth2->authenticateButton(Object(IPS\Login))
#6 N:\OSPanel\domains\ipb43.ru\forum\applications\core\modules\front\system\login.php(57): IPS\_Login->authenticate()
#7 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Controller.php(96): IPS\core\modules\front\system\_login->manage()
#8 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#9 N:\OSPanel\domains\ipb43.ru\forum\index.php(13): IPS\_Dispatcher->run()
#10 {main}

 

и

IPS\Login\Exception::2
generic_error

#0 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(294): IPS\Login\Handler\OAuth2\_Custom->_userData('0740fa1a0d3ecb6...', 'response[0][uid...')
#1 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(384): IPS\Login\Handler\OAuth2\_Custom->authenticatedUserId('0740fa1a0d3ecb6...')
#2 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(368): IPS\Login\Handler\_OAuth2->_processAccessToken(Object(IPS\Login), Array)
#3 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(164): IPS\Login\Handler\_OAuth2->_handleAuthorizationResponse(Object(IPS\Login))
#4 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Login.php(316): IPS\Login\Handler\_OAuth2->authenticateButton(Object(IPS\Login))
#5 N:\OSPanel\domains\ipb43.ru\forum\applications\core\modules\front\system\login.php(57): IPS\_Login->authenticate()
#6 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Controller.php(96): IPS\core\modules\front\system\_login->manage()
#7 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#8 N:\OSPanel\domains\ipb43.ru\forum\index.php(13): IPS\_Dispatcher->run()
#9 {main}

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...